猿问

JS数组合并和求和

我有数组


{"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。


潇湘沐
浏览 81回答 1
1回答

繁花不似锦

不清楚你想要一个输出对象还是数组。无论如何..你可以尝试像下面这样的东西。如果你需要一个输出数组。a = {"BS-WHITE":3,"BS-BOX":1}//input valueb = {"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 valueb = {"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 valueb = {"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);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答