arr.reduce(function(sum,value,index,arr){}) 方法
丛继永
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
参数 |
详情 |
sum第一个参数 |
第一次为数组的第一个数组元素的值(下标为0),依次往后是返回计算结果的值 |
value 第二个参数 |
开始为数组元素第二个的值(下标为1),依次往后循环 |
index第三个参数 |
依次为数组元素的下标 |
arr第四个参数 |
为数组的整体 |
function sum(arr){
return arr.reduce(function(sum,value,index,arr){
console.log(sum);
console.log(value);
console.log(index);
console.log("~~")
console.log(arr)
return sum+y
})
}
console.log(sum([1,2,3,4,5]))
arr.every(function(value,index,arr){})
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
参数 |
详情 |
value |
数组元素 |
index |
数组下标 |
arr |
当前数组的整体 |
function sum(arr){
return arr.every(function(value,index,arr){
console.log(value);
console.log(index);
console.log("~~")
return value>=1
})
}
console.log(sum([1,2,3,4,5]))
arr.some(function(value,index,arr){})
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
参数 |
详情 |
value |
数组元素 |
index |
数组下标 |
arr |
当前数组的整体 |
function sum(arr){
return arr.some(function(value,index,arr){
console.log(value);
console.log(index);
console.log("~~")
return value>=1
})
}
console.log(sum([1,2,3,4,5]))
arr.filter(function(value,index,arr){})
filter()方法过滤查找全部,对数组元素进行判断,满足条件的会组成一个新的数组返回
注意:如果都不符合条件,会得到一个空数组
注意:如果所有元素都符合条件,会得到一个包含所有元素的新数组它与原数组进行===或==比较会得到false
参数 |
详情 |
value |
数组元素 |
index |
数组下标 |
arr |
当前数组的整体 |
function sum(arr){
return arr.filter(function(value,index,arr){
console.log(value);
console.log(index);
console.log("~~")
return value>=5
})
}
console.log(sum([1,2,3,4,5]))
arr.map(function(value,index,arr){})
map对数组元素进行循环,有返回值,返回值会组成一个新的数组
注意:map可以处理一对一的元素映射
参数 |
详情 |
value |
数组元素 |
index |
数组下标 |
arr |
当前数组的整体 |
const source = [1,2,3,4]
const target = source.map(n=>({id:n,label:`label${n}`}))
console.log(target)
function sum(arr){
return arr.map(function(value,index,arr){
console.log(value);
console.log(index);
console.log("~~")
return value>=1
})
}
console.log(sum([1,2,3,4,5]))
arr.forEach(function(value,index,arr){})
forEach()方法对数组元素进行循环,没有返回值和for循环的功能一样,但是不能使用break和countinue
注意:map和forEach的区别:map有返回值,forEach没有返回值
参数 |
详情 |
value |
数组元素 |
index |
数组下标 |
arr |
当前数组的整体 |
function sum(arr){
return arr.forEach(function(value,index,arr){
console.log(value);
console.log(index);
console.log("~~")
return value>=1
})
}
console.log(sum([1,2,3,4,5]))