1.创建数组
字面量[]
new Array(n) //n 代表的是数组长度 表示undefined * 100
new Array(true, false, null, 1, 2, “hi”) // 等价于[true, false, null, 1, 2, “hi”];
- 数组长度
- 删除数组
- 增加数组
var arr = [];
arr[0] = 1;
arr[1] = 2;
arr.push(3); //从数组末尾添加一个数据
arr; // [1, 2, 3]
arr.unshift(0); //从数组开头添加一个数据
arr; // [0, 1, 2, 3, 4];
delete arr[2]; //删除数组中下标为2的元素,不会改变数组长度
arr; // [0, 1, undefined, 3, 4]
arr.length; // 5
2 in arr; // false
arr.pop(); // 3 returned by pop //从数组后面删除元素
arr; // [0, 1, undefined], 3 is removed
arr.shift(); // 0 returned by shift //从数组前面删除元素
arr; // [1, undefined]
数组迭代
var arr = [1, 2, 3, 4, 5];
Array.prototype.x = ‘inherited’;
for(i in arr) {
console.log(arr[i]); // 1, 2, 3, 4, 5, inherited
}
for(i in arr) {
if (arr.hasOwnProperty(i)) {
console.log(arr[i]); // 1, 2, 3, 4, 5
}
}
数组方法:
1.join //数组变字符串,并不会改变原来数组
2.reverse //数组倒叙,改变原数组
3.sort // 多种用法
arr.sort() // 先根据数组元素的第一位从小到大排列,再从第二位开始
arr.sort((a,b)=>{
return a-b //从小到大 , b-a就是从大到小
})
4.concat //拼接数组,原数组并未边改
5.slice //截取数组,原数组未改变
6.splice // 查找并且剔除元素,原数组改变
var arr = [1, 2, 3, 4, 5];
arr.splice(2); // returns [3, 4, 5]
arr; // [1, 2]
7.forEach //对数组进行遍历,获取每一个元素
arr = [{age : 25}, {age : 39}, {age : 99}];
arr.forEach(function(item) {
console.log('age', item.age);
});
8.map //数组映射,原数组未改变
arr.map((value,index,arr)=>{
})
9.filter // 筛选数组,原数组未被修改
arr.filter((value,index)=>{
})
10.every //遍历数组中的每个元素是否符合条件,都符合返回true
var arr = [1, 2, 3, 4, 5];
arr.every(function(x) {
return x < 10;
}); // true
arr.every(function(x) {
return x < 3;
}); /
11.some //遍历数组中的任意元素是否符合条件,只要一个符合返回true
var arr = [1, 2, 3, 4, 5];
arr.some(function(x) {
return x === 3;
}); // true
arr.some(function(x) {
return x === 100;
}); // false
12.reduce //数组内部元素计算
var arr = [1, 2, 3];
var sum = arr.reduce(function(x, y) {
return x + y
}, 0); // 6
arr; //[1, 2, 3]
13.indexOf/lastIndexOf //数组检索,是否包含,如果包含返回索引
14.isArray //判断是否是数组