Node.js中如何合并对象内值相同的多个键?
Node.js对象多键共用值的实现方法
你写的那种合并键的写法在JavaScript里是无效语法,JS对象字面量不支持这种类似switch case的合并写法,会直接抛出语法错误。
不过有几种简单的方法可以避免重复代码,实现多键共用同一值:
方法一:先定义共用值,再赋值给多个键
先把重复的内容抽成单独变量,然后给需要的对象键赋值,这是最直观的方式:
// 先定义共用的对象,注意Set构造函数要传数组,原代码的new Set(3,4,5)是错误写法 const sharedItem = { 0: new Set([3, 4, 5]) }; const SampleList = { 1: sharedItem, 2: sharedItem };
方法二:通过循环批量赋值
如果需要共用值的键数量较多,可以用循环批量设置:
const SampleList = {}; const sharedItem = { 0: new Set([3, 4, 5]) }; // 把需要共用值的键放在数组里,循环赋值 [1, 2].forEach(key => { SampleList[key] = sharedItem; });
注意:上面两种方式里,多个键指向的是同一个对象引用,如果后续修改sharedItem或者SampleList[1]的内容,SampleList[2]也会跟着变化。如果需要每个键对应独立的对象(修改其中一个不影响另一个),可以每次赋值时创建新对象,比如用扩展运算符:
const SampleList = { 1: { ...sharedItem }, 2: { ...sharedItem } }; // 或者循环时创建新对象 [1,2].forEach(key => { SampleList[key] = { ...sharedItem }; });
内容的提问来源于stack exchange,提问作者user734172
相关产品推荐
相关产品推荐

