Array构造器
凡是通过Array构造函数创建的对象,都是数组
静态成员
- from方法:可以将一个伪数组转换为真数组
- isArray方法:判断一个给定的数据,是否为一个真数组
- of方法:类似于中括号创建数组a=[1,2,3],依次赋予数组每一项的值
实例成员
- fill方法:用某个数据填充数组
- pop:删除数组的最后一个元素,并返回这个元素。
- push :在数组的末尾增加一个或多个元素,并返回数组的新长度。
- reverse:将当前数组颠倒顺序
- shift:删除数组的第一个元素,并返回这个元素。
- sort:对数组进行排序
var arr = [3, 211, 32, 11, 5, 4];
// arr.sort(function(a, b) {
// return b - a;
// });
//随机打乱顺序(洗牌)
arr.sort(function(a, b) {
return Math.random() - 0.5;
});
- splice:在任意的位置给数组添加或删除任意个元素。
- unshift:在数组的开头增加一个或多个元素,并返回数组的新长度。
纯函数、无副作用函数:不会导致当前对象发生改变
- concat:返回一个由当前数组和其它若干个数组或者若干个非数组值组合而成的新数组。
- includes: 数组中是否包含满足条件的元素
- join:连接所有数组元素组成一个字符串。
- slice:抽取当前数组中的一段元素组合成一个新数组。
- indexOf:返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
- lastIndexOf:返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1。
- forEach: 遍历数组
function logArrayElements(element, index, array) {
console.log('a[' + index + '] = ' + element);
}
// 注意索引 2 被跳过了,因为在数组的这个位置没有项
[2, 5, , 9].forEach(logArrayElements);
// logs:
// a[0] = 2
// a[1] = 5
// a[3] = 9
- every:是否所有元素都满足条件
- some:是否至少有一个元素满足条件
var arr = [37, 25, 48, 55, 30];
//判断是否所有同学都及格
// var result = arr.every(function(item) {
// return item >= 60;
// });
// console.log(result);
//判断是否至少有一个同学及格
console.log(arr.some(function(item) {
return item >= 60;
}));
- filter:过滤,得到满足条件的元素组成的新数组
function isBigEnough(element) {
return element >= 10;
}
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
// filtered is [12, 130, 44]
- find: 查找第一个满足条件的元素,返回元素本身,如果没有找到,返回undefined
- findIndex: 查找第一个满足条件的元素,返回元素的下标
- map:映射,将数组的每一项映射称为另外一项
var arr = [55, 66, 22, 33, 44, 88];
//得到一个新数组,新数组的每一项是一个对象
//对象中包含两个属性:name、score
var newArr = arr.map(function(item, i) {
return {
name: "学生" + (i + 1),
score: item
}
});
//得到一个学生的姓名数组
newArr = newArr.map(function(item) {
return item.name;
});
console.log(newArr);
- reduce:统计,累计
var arr = [1, 2];
var sum = arr.reduce(function(s, item) {
console.log("回调", s, item);
return s + item;
}, 0);
console.log(sum);