假设我要按如下方式分配对象属性:
d.x += d3.event.dx || 0;
d.y += d3.event.dy || 0;
也就是说,属性的赋值方式是一致的。
是否有一种简单的方法来简化这个键值分配?
您可以使用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);
可以使用解构来消除重复的点符号。
const { dx, dy } = d3.event;