js 数组里多个对象 reduce 为单个对象

2023-01-30  本文已影响0人  南土酱

百度完看了一堆都是很简单的例子或者结果不是我想要的。
我的数据是这样的

[ {label:'ds',value:'d'} , {label:'aa',value:'b'} ]
然后想通过 reduce 转变成以下结果:
{ d:ds , b:aa }

reduce 方法平摊来看的话有四个参数

reduce( (total , current, index)=>{}, initialValue)
initialValue 是初始值,可选
total 是累积值,也就是要结果累加在一起的值 ,必选
current 是数组里遍历的当前值, 必选
index 是下标,可选

1.看思路一开始我是想

[{label:'ds',value:'d'},{label:'aa',value:'b'} ].reduce((tar,key,index)=>{ tar[key.value]=key.label})
image.png

2.原来是忘记reduce 加 return了


image.png

3.但是第一个还是 label和 value,怎么回事呢?原来是得传个初始值,不然第一次的时候就出错


image.png
[{label:'ds',value:'d'}].reduce((tar,key)=>{ tar[key.value]=key.label;return tar;}, {})

这里我是原先对象里的 value 作为 结果对象的key,如果读者需要,可以自己定义key值。

上一篇 下一篇

猜你喜欢

热点阅读