美文网首页
js 数组里多个对象 reduce 为单个对象

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

作者: 南土酱 | 来源:发表于2023-01-30 15:17 被阅读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值。

    相关文章

      网友评论

          本文标题:js 数组里多个对象 reduce 为单个对象

          本文链接:https://www.haomeiwen.com/subject/zdbmhdtx.html