1、简介:数组的迭代方法有很对,为什么要说reduce呢?
人生哲理:通往成功的道路有很多,总有最好的捷径
2、语法:arr.reduce(callback,[initValue])
数组中的每一项都执行给定回调函数,回调函数接受四个参数previousValue(初始值),currentValue(当前的值),index(索引),array(数组本身)
initValue作为第一次调用回调函数的初始值,如果没有initValue,会默认从数组索引为1的项开始执行回调函数
最直接的用法:计算数组中所有store的和
var arr = [{
id: 1,
name: "zs",
store: 99,
sex: "男"
},
{
id: 2,
name: "ls",
store: 89,
sex: "男"
},
{
id: 3,
name: "ww",
store: 30,
sex: "男"
},
{
id: 4,
name: "zl",
store: 60,
sex: "男"
}
]
// reduce(函数(上一次运行完的返回值,item,index),初始值)
val第一次的值是初始值0执行函数的结果 所以是:0 + 99
val第二次的值是第一次执行函数的结果执行函数的结果 99+89
val第三次的值是第二次执行函数的结果执行函数的结果 188+ 30
val第四次的值是第三次执行函数的结果执行函数的结果218 + 60
最终sum = 278
var sum = arr.reduce((val, item, index, arr) => {
return val += item.store
}, 0)
// find 查询出满足条件的第一条数据
var Val = arr.find((item,index)=>{
console.log(item,index)
return item.store>60
})
// console.log(Val); //{id: 1, name: "zs", store: 99, sex: "男"}
// findIndex 返回满足第一个满足条件的数组项的下标
// var Val = arr.findIndex((item,index)=>{
// // console.log(item,index);
// return item.store>60
// })
// console.log(Val);//0