数组对象

本文详细介绍了JavaScript中数组的创建、检测以及相关方法,包括使用字面量和new Array()构造函数创建数组,通过instanceof和Array.isArray()检查类型,以及数组的增删、排序、获取索引和转换为字符串等操作。特别提到了sort()方法的排序规则和join()方法的默认分隔符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 创建数组

  1. 字面量方式创建
	var arr = [1,"2",{name:"kedar"},false,[1,2,3]]; // 里面可以容纳任何类型的值
  1. new Array()
var arr = new Array(); // 创建空数组
var arr1 = new Array(9); // 传入一个参数规定数组的长度
var arr2 = new Array(9,{name:"dog"}); // 传入多个参数则作为数组的元素

二. 检测是否为数组

  1. instanceof
var arr = [1,2,3];
arr instanceof Array; // true
  1. Array.isArray()
var arr = [];
Array.isArray(arr); // true
  1. 对象原型上的方法 toString()
var arr = [];
Object.prototype.toString.call(arr); // [object Array]

三. 数组的相关方法

1. 增加、删除元素的方法
var arr = [];
arr.push(1,2); 
"数组末尾添加一个或多个元素,修改原数组,返回长度" 

arr.pop();
 "删除数组最后一个元素,修改原数组,返回删除的值,如果没有元素返回undefined"
 
arr.unshift(); 
"在数组最前面添加一个或多个元素,修改原数组,返回新长度"

arr.shift(); 
"删除数组的第一个元素,修改原数组,返回删除元素的值"
2. 数组排序

reverse() 和 sort()

var arr = [1,2,3,4,5,6,7,8];

var newArr = arr.reverse(); 
"颠倒数组元素的顺序,修改原来的数组,返回新数组"

console.log(arr); //(8) [8, 7, 6, 5, 4, 3, 2, 1] 数组被修改
console.log(newArr); //(8) [8, 7, 6, 5, 4, 3, 2, 1] 

var arr =[2,3,5,1,8,7,6,9,4];
var newArr = arr.sort(function(a,b){
	if(a < b){
		return -1;
	}
	if(a > b){
		return 1;
	}
	return 0; // 必须是 a 和 b 相等的情况
 }); 
 console.log(arr); // (9) [1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 如果省略参数,sort()会按照转换为字符串的各个字符的Unicode位点进行排序。
  • 两个比较元素,a 和 b, 如果它们的比较小于 0 ,那么 a 会 放到 b 之前,等于 0 位置不变,大于零 b 会 放到 a 之前。
3. 获取数组索引
var arr = [9,8,8,6,5,4,2,2,1];
arr.indexOf(8);
 "数组中查找给定的元素的第一个索引,存在返回索引号,不存在返回 -1"
 
arr.lastIndexOf(2);
 "查找给定元素的最后一个索引,存在返回索引号,不存在返回 -1"
4. 数组转换为字符串
var arr = [1,2,3,4,5,6,7,8,9];
console.log(arr.toString()); // 1,2,3,4,5,6,7,8,9
console.log(arr.join()); // 1,2,3,4,5,6,7,8,9
  • join()不传入参数则按照 ”,“ 拼接元素。
5. 其他方法
var arr1 = [1,2,3];
var arr2 = [4,5,6];

Array.concat(arr1,arr2); 
"连接两个或多个数组,不修改原数组,返回新数组"
// (6) [1, 2, 3, 4, 5, 6] 

arr1.slice(1,2); 
"截取数组,第一个参数是从哪个索引开始,第二个参数是截取到哪个参数(不包括那个参数),返回被截取的数组"

arr2.splice(beginIndex,deleteAmount,...params);
 "beginIndex:从第几个开始截取,deleteAmount截取长度,..params 填入参数,返回被删除的数组,且原数组会被修改"

arr1.forEach(function(value,index,array){
	"value : 数组的元素"
	"index : 数组元素的索引"
	"array : 遍历的数组"
	"相当于遍历数组,没有返回值"
})

arr1.filter(function(value,index,array){
	return value > 1; // [2,3]
	"形参与forEach一样,返回新数组"
})

arr1.some(function(value,index,array){
	return value >1; // true
	"返回布尔值,只要数组里面有符合条件的参数就返回true并且立即终止循环"
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值