1. Es5中的一些数组方法。
1. for循环。
2. forEach:无返回值,break和container会报错。
3. map:返回一个New Array,根据function对于每一项格式化。
4. filter:返回符合条件的数组。
5. some:数组中有一个为true返回true。
6. every:数组中所有满足条件,返回true。
7. reduce:累加执行,具体参数可以参照MDN。
8. for in (不建议使用)。
2. ES6对于数组方法的扩展。
1. for of:迭代Array,因为Array内置了[Symbol.iterator]()所以可迭代。(字符串也支持,自定义对象实现迭代方法也可以forof)。
> for of中也存在break和continue以及return,return和break都是直接终止循环。
2. Array.from(A,B,C):将类数组对象转成数组。(伪数组具备两个特征,1. 按索引方式储存数据 2. 具有length属性。参考Demo可以有一些更高级的用法)
1. A:伪数组对象。
2. B:function,对要转化的每一项进行格式化的处理函数,return为处理后的每一项。
3. C:B中的this指向。
3. Array.of:解决ES5 new Array不统一的问题。
4. Array.prototype.fill:填充传入的数组,包括开始索引,不包括结束。
5. Array.prototype.find:找到符合条件的元素。
6. Array.prototype.findIndex:找到符合条件的数组元素索引。
7. Array.prototype.copyWithin(A,B,C):在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。
1. A:原有数组开启替换的位置。(Y)
2. B:原有数组需要进行替换取值的开始点。(N)不填从第0个开始,负数从倒数开始。
3. C:原有数组需要进行替换取值的结束点。(N)不填一直到结束,负数同理。
8. Array.prototype.values()/keys()/entries():返回的都是Iterator,可以用for of进行处理。
for (let val of [1, 2, 3]) {
console.log(val);
}
for (let item of arr) {
console.log(item)
}
for (let item of arr.values()) {
console.log(item)
}
for (let item of arr.keys()) {
console.log(item)
}
for (let [index, item] of arr.entries()) {
console.log(index, item)
}
let arr = Array(6).join(' ').split('').map(item => 1)
Array.from({
length: 5
}, function () {
return 1
})
Array.of(7);
Array.of(1, 2, 3);
Array(7);
Array(1, 2, 3);
let array = [1, 2, 3, 4]
array.fill(0, 1, 2)
Array(5).fill(1)
let array = [5, 12, 8, 130, 44];
let found = array.find(function (element) {
return element > 10;
});
console.log(found);
let array = [5, 12, 8, 130, 44];
let found = array.findIndex(function (element) {
return element > 10;
});
console.log(found);
let arr = [1, 2, 3, 4, 5]
console.log(arr.copyWithin(1, 3))