在ES6中存在结构相似性时,使分配对象属性更少冗余

时间:2016-08-14 06:09:29

标签: javascript oop object ecmascript-6

假设我正在按如下方式分配对象属性:

d.x += d3.event.dx || 0;
d.y += d3.event.dy || 0;

换句话说,属性的赋值方式是一致的。

是否存在简化此键值赋值的方法? Es2015语法很好。

2 个答案:

答案 0 :(得分:1)

您可以使用解构来消除重复的点符号。

const { dx, dy } = d3.event;

答案 1 :(得分:1)

您可以使用Object.keys().forEach()

var d = { x: 3, y: 4 }, d3 = { event: { dx: 1, dy: 2 } };

Object.keys(d3.event).forEach(prop => d[prop[1]] += d3.event[prop] || 0);

console.log(d);