JS数组合并和求和 [英] JS arrays merge and sum

查看:47
本文介绍了JS数组合并和求和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有数组

{"BS-WHITE":3,"BS-BOX":1}//input value
{"BS-WHITE":2,"BS-BOX":0,"BS-WHITE-1":1}//output value

我想将它们合并以得到像这样的数组中的数组:

And I would like to merge them to get arrays in array something like this:

[["BS-WHITE",3,2],["BS-BOX",1,0],["BS-WHITE-1",0,1]]

如果不存在该值,则应为0.

If value doesn't exist should be 0.

推荐答案

尚不清楚您是否需要输出对象或数组.

It's not clear if you want an output object or array.

无论如何..您可以尝试以下类似的方法.

Anyways..You can try something like below.

如果需要输出数组.

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);

这篇关于JS数组合并和求和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆