1. map:
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
例:
let data = {items:[{name:"张三",age:"22",class:"三年一班",sex:0},{name:"李四",age:"25",class:"三年二班",sex:1}]}
let dataInfo = data.items.map(item=>{
return {
titile:item.name,
class:item.class,
age:item,age,
sex:item.sex==0?'男':'女'
}
})
还有一种写法:
let dataInfo = data.items.map(item=>( {
titile:item.name,
class:item.class,
age:item,age,
sex:item.sex==0?'男':'女'
}))
console.log(dataInfo);返回值是处理后的数组
2. filter:
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
例:
let data = {items:[{name:"张三",age:22,class:"三年一班",sex:0},{name:"李四",age:25,class:"三年二班",sex:1}]}
let dataInfo = data.filter(age=>{
return age!=22;
})
console.log(dataInfo);
3. some
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。
例:
let data = {items:[{name:"张三",age:22,class:"三年一班",sex:0},{name:"李四",age:25,class:"三年二班",sex:1}]}
let dataInfo = data.items.some(v=>{
return v>22
})
console.log(dataInfo);//true
4. every
every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。
例:
let data = {items:[{name:"张三",age:22,class:"三年一班",sex:0},{name:"李四",age:25,class:"三年二班",sex:1}]}
let dataInfo = data.items.every(v=>{
return v>22
})
console.log(dataInfo);//false
5. reduce
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
例:
let numbers = [1,2,3,4,5]
let result = numbers.reduce((sum, num)=> {
return sum + Math.round(num);
}, 12);
reduce接收两个参数,第一个参数是一个函数,第二个参数是一个初始值,可省略。
函数的计算过程可以是两个数值相加、相减、相乘等所有可进行运算的方法。
console.log(result);//结果:27