语法
reduce是数组的一个高阶函数 说白了就是一个循环 只不过这个循环有在特定的场景下用的会比较方便些 这个特定环境就是累x 累x指的是累加 累乘 累除
- 举例:
arr=[1,2,3,4]
const sum=arr.reduce((pre,cru)=>{return pre+cur},0)
具体语法我不再赘述 可以看看这个作为参考
妙用
- 场景:有一个对象数组 每个对象有一个标识身份的id 当我们每次想取出某个id项的时候 正常情况下我们会遍历这个数组 然后取出 但是每次想要取出的时候都需要遍历一遍 比较麻烦 解决思路是格式化这个对象数组 把id作为一个新对象的属性名称 这样每次取这个数据的时候只需要使用对象.属性的方式就能实现 如:
[{id:56,name:'cmb'},{id:49,name:'zzc'},{id:006,name:'zym'}].reduce((j,k)=>{
j[k.id]=k
return j
},{})
经过这么处理后 得到的结果是这样的:
这样的结果就是原来需要每次遍历 对比id号才能取到对应的项 现在把这个id项作为一个对象的属性 值变成就是原来的数据 之后再想要取这个数据只需要通过.属性名即可