JavaScript实现将对象多个属性值合并为同对象新键并删除原属性
JS对象合并指定属性并删除原属性实现方案
方法1:不修改原对象(推荐,无副作用)
使用ES6对象解构语法,先提取需要合并的notSet和blanks属性,剩余属性自动归集到剩余参数对象中,再组装成新对象即可:
const origin = { notSet: 2, set: 9, blanks: 4, other: 8 }; // 提取待合并属性,其余属性存入rest const { notSet, blanks, ...rest } = origin; const result = { newKey: notSet + blanks, ...rest };
运行后result的结构完全符合要求:{newKey: 6, set: 9, other: 8},原对象origin不会被改动。
方法2:直接修改原对象
如果不需要保留原对象,可以直接在原对象上操作,先计算新键值,再删除多余属性:
const obj = { notSet: 2, set: 9, blanks: 4, other: 8 }; obj.newKey = obj.notSet + obj.blanks; delete obj.notSet; delete obj.blanks;
这种写法内存开销更小,但会直接改动原始数据,适合确认原对象后续不再使用的场景。
边界情况处理
如果待处理对象可能缺失notSet或blanks属性,相加时补0避免出现NaN:
newKey: (origin.notSet ?? 0) + (origin.blanks ?? 0)
这里用空值合并运算符??,只有属性值为null/undefined时才取默认值0,不会把合法的0值误判。
内容的提问来源于stack exchange,提问作者RooksStrife
相关产品推荐
相关产品推荐

