为了账号安全,请及时绑定邮箱和手机立即绑定

JS数组合并和求和

JS数组合并和求和

潇湘沐 2021-11-18 20:11:50
我有数组{"BS-WHITE":3,"BS-BOX":1}//input value{"BS-WHITE":2,"BS-BOX":0,"BS-WHITE-1":1}//output value我想合并它们以获得数组中的数组,如下所示:[["BS-WHITE",3,2],["BS-BOX",1,0],["BS-WHITE-1",0,1]]如果值不存在,则应为 0。
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

不清楚你想要一个输出对象还是数组。


无论如何..你可以尝试像下面这样的东西。


如果你需要一个输出数组。


a = {"BS-WHITE":3,"BS-BOX":1}//input value

b = {"BS-WHITE":2,"BS-BOX":0,"BS-WHITE-1":1}


c = [...new Set([...Object.keys(a), ...Object.keys(b)])];


result = c.map((key) => {

   return  {

        [key]: [(a[key] || 0), (b[key] || 0)] 

    }   

});


console.log(result);


如果你需要一个输出对象。


a = {"BS-WHITE":3,"BS-BOX":1}//input value

b = {"BS-WHITE":2,"BS-BOX":0,"BS-WHITE-1":1}


c = [...new Set([...Object.keys(a), ...Object.keys(b)])];


result = c.reduce((acc,key) => {

        acc[key] = [(a[key] || 0), (b[key] || 0)] 

        return acc;

  

}, {});


console.log(result);


如果您需要数组数组


a = {"BS-WHITE":3,"BS-BOX":1}//input value

b = {"BS-WHITE":2,"BS-BOX":0,"BS-WHITE-1":1}


c = [...new Set([...Object.keys(a), ...Object.keys(b)])];


result = c.map(key => {

        return [key , (a[key] || 0), (b[key] || 0)]

  

});


console.log(result);


查看完整回答
反对 回复 2021-11-18
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信