<script>
// 遍历数组
// 1. forEach,map
// 2. every, some
// 3. filter, find, findIndex
// 4. reduce
// forEach
let arr = [1, 2, 3, 4, 5];
// arr.forEach(function(元素的值,值对应的索引,数组本身) {
// 对数组中的每个元素逐个调用回调方式进行处理
// })
// 三个参数,只有第一个必选的,其它可不写
let res = arr.forEach((item, index, arr) => console.log(item, index, arr));
console.log(res);
// 需要返回值,就用map
res = arr.map((item, index, arr) => [item, index, arr]);
// 将每个元素乘2返回一个新数组, [1,2,3] => [2,4,6]
res = arr.map(item => item * 2);
console.log(res);
// every, some
// every: 数组成员全部满足条件,则返回 true , 否则 false 与
console.log(arr.every(item => item >= 0));
console.log(arr.every(item => item >= 3));
console.log(arr.some(item => item >= 6));
console.log(arr.some(item => item >= 3));
// filter,只返回为真的元素组成的数组
console.log(arr.filter(item => item >= 3));
// find,返回满足条件的第一个
// arr.filter(item => item >= 3)[0]
console.log(arr.find(item => item >= 3));
// 归并 reduce
let acc = 0;
for (let i = 0; i < arr.length; i++) {
acc += arr[i];
}
console.log(acc);
// arr.reduce(function(累加器,元素的值,值对应的索引,数组本身) {
// })
res = arr.reduce(function(acc, item, index, arr) {
// console.log(`acc=${acc}, item=${item}, index=${index},arr=${arr}`);
console.log(`acc=${acc}, item=${item}`);
return acc + item;
}, 1000);
// acc: 结果累加器
res = arr.reduce((acc, item) => acc + item);
console.log(res);
</script>