1、Array.prototype.forEach(callback(currentItem[,index[,array])[,thisArg])
遍历数组,返回undefined,不改变原数组 没有办法终止循环,如果有终止需求考虑some,every,find,findIndex方法
2、Array.prototype.map(callback(currentItem[,index[,array])[,thisArg])
遍历数组,每个元素执行callback,返回新值,组成一个新数组,最终所有返回的新值组成新数组,返回这个新数组,不改变原数组 没有办法终止循环
3、Array.prototy.filter(callback(currentItem[,index[,array])[,thisArg])
过滤出满足callback的值,所有这些值组成新数组,返回这个新数组,不改变原数组
4、Array.prototy.entries()
返回新数组的Iterator,具有next()方法,返回
var a = [1,2,3];
var b = a.entries();
b.next() //{done: false, value: [0, 1]}
Array.prototy.keys()
返回索引数组的Iterator,具有next()方法,返回
var a = [1,2,3];
var b = a.keys();
b.next() //{done: false, value: [0, 0]}
Array.prototy.values()
返回值数组的Iterator,具有next()方法,返回
var a = [1,2,3];
var b = a.values();
b.next() //{done: false, value: [0, 1]}
entries、keys、values的遍历方法,for..of..
var a = [1,2,3];
for(let [index, value] of a.entries()){
console.log(index, value);//0 1, 1 2, 2 3
}
var arr = ["a", , "c"];
var sparseKeys = Object.keys(arr);
var denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys); // [0, 1, 2]