【发布时间】:2020-03-26 00:33:39
【问题描述】:
举个例子:
// option 1
items.reduce((values, item) => ({
...values,
[item.id]: item.name
}), {})
// option 2
items.reduce((values, item) => {
values[item.id] = item.name;
return values;
}, {});
在这种情况下,是否有使用对象扩展语法的最佳实践赞成或反对?
【问题讨论】:
-
每次都创建一个具有所有属性的新对象听起来更耗费资源(并且可能不会因任何抖动而优化)。但是,这仅在此操作成为瓶颈时才重要。
-
更好的选择是使用更合适的语言功能,例如
new Map(items.map(x => [x.id, x.name]))
标签: javascript object reduce spread-syntax