使用spread添加到对象中的所有值

时间:2018-05-10 20:24:31

标签: javascript

有谁知道这是否有简写?

let zx = { a: 1, b: 10};
let as = { a: 20, b: 1};

as += ...zx;    //Ideas on a shorthand here? 

console.log(as);

期望的结果:{a:21,b:11}

1 个答案:

答案 0 :(得分:4)

您可以通过传递Object.keys函数作为参数,将forEach方法与arrow结合使用。

let zx = { a: 1, b: 10};
let as = { a: 20, b: 1};

Object.keys(as).forEach(key => as[key] += zx[key])

console.log(as);

另一种方法是使用reduce方法。

let zx = { a: 1, b: 10};
let as = { a: 20, b: 1};
as = Object.keys(as).reduce(function(obj, k) {
    obj[k] = zx[k] + as[k]
    return obj;
}, {});
console.log(as);