示例中的数组为:
var arr = [
{ id: 1, name: '王昭君' },
{ id: 2, name: '安琪拉' },
{ id: 3, name: '鲁班七号' },
];
var nums = [1, 2, 3, 4, 5];
1. 普通for循环;
for (let i = 0; i < arr.length; i++) {
console.log(arr[i], i);
}
2,forEach循环;
arr.forEach((ele, index) => {
console.log(ele, index);
});
3、for...in,(主要是用来遍历对象,不建议遍历数组)
for...in遍历对象;key为对象的键名;
4. map()遍历,返回一个新数组;
let arr2 = arr.map((ele, index) => {
let job = {
1: '法师',
2: '法师',
3: '射手',
};
// 给每个数组元素添加一个job字段;
return {
...ele,
job: job[ele.id],
};
});
5. for...of遍历;
6. reduce()遍历,从左到右对数组元素进行遍历;
用法:reduce(callback(accumulator,currentValue,index,array
), initialValue);
可参考MDN文档:Array.prototype.reduce() - JavaScript | MDN
参数说明:
用途1:数字数组求和;对象数组按某个字段求和;
注意:初始值initialValue为空时,prev默认是数组第一个元素,currentValue从数组第二个元素开,index从索引1开始;
初始值initivalValue不为空时;prev默认是数组的初始值, currentValue从数组第一个元素开始,index从索引0开始;
用途2:返回对象数组某个字段的集合;
reduceRight(callback(accumulator,currentValue,index,array),initivalValue) ;从右到左对数组进行遍历;
注意: 1)如果initivalValue的初始值为空时,则accumulator默认是数组最后一个元素,则数组不能为空,否则会报错;currentValue从数组倒数第二个元素开始,index从array.length-2开始
2)如果initivalValue的初始值不为空,则accumulator默认是初始值,currentValue从数组最后一个元素开始,index从array.length-1开始;
7. some();返回一个boolean值,判断数组中是否存在一个元素通过被提供的函数测试;
8. every();返回一个boolean值,判断数组中的元素是否全部通过被提供函数的测试;
9. find();返回符合条件的第一个数组元素,如果没有找到则返回undefined;