以下所有函数均为循环遍历函数
every
var arr = [0,5,6156,564,156,56];
// 数组.every
// 需要所有都匹配才能返回为true,有一个不匹配都会返回false
// 1. 函数会自动循环遍历数组调用函数
// 2. 若回调函数本次返回true说明元素符合要求会继续向下循环,若遍历结束后都符合 every 也会返回true
// 3. 若回调函数本次返回false说明元素不符合要求会返回false并终端循环 every 也会返回false
console.log(arr.every(function(value,index,array){
// console.log(value);
// console.log(index);
// console.log(array);
return true; // true 会继续向下循环
return false; // false 会中断然后every也会返回false
}))
some
var arr = [0,5,6156,564,156,56];
// 用于数组内有一个匹配即返回为true
// 1. 函数会自动循环遍历数组调用函数
// 2. 若函数调用本次返回为true会直接中断循环some也会返回true
// 3. 若函数本次调用返回为 false 会继续遍历,直到最后都没有一个回调函数返回为 true 会返回 false
console.log(arr.some(function(value,index,array){
console.log(value);
// console.log(index);
// console.log(array);
return true; // 只要有一个元素返回true会中断循环然后some也会返回true
// return false; // 会直接遍历到最后一个然后some也返回为false
}))
map
var arr = [0,5,6156,564,156,56];
// 数组.map
// 1. 自动遍历数组然后加工数据
// 2. map加工不会修改本身数组的数据会返回一个新数组
arr = arr.map(function(value,index,array){return value * 2})
console.log(arr)
forEach
var arr = [0,5,6156,564,156,56];
// 数组.forEach
// 1. 单纯简化for循环自动遍历
arr.forEach(function(value,index,array){
console.log(value);
// console.log(index);
// console.log(array);
})
reduce
var arr = [0,5,6156,564,156,56];
// 数组.reduce
// 1. 自动遍历数组, 但会从下标1开始会将下标0直接初始化到参数1
// 2. 每次返回数据都会作为下次的参数1
// 3. 在数组遍历结束后reduce会返回最后的临时汇总数值
console.log('reduce:' + arr.reduce(function(total,value,index,array){
return total + value;
}))