当ES6中存在结构相似性时,减少分配对象属性的冗余

Make assigning object properties less redundant when there's structural similarities in ES6

本文关键字:分配 对象 属性 冗余 ES6 存在 结构 相似性      更新时间:2023-09-26

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

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;