Javascript 使用扩展运算符从ES6中的对象中删除目标参数
我正在尝试使用扩展操作符从对象中删除属性。传统上我是这样做的:Javascript 使用扩展运算符从ES6中的对象中删除目标参数,javascript,typescript,spread-syntax,Javascript,Typescript,Spread Syntax,我正在尝试使用扩展操作符从对象中删除属性。传统上我是这样做的: const original_object = { prop1 : 'string1', prop2: 'string2' }; const { prop1, ...rest } = original_object; 在上述情况下,删除的属性(prop1)将不再存在于rest对象中 假设有一个更复杂的属性我想删除,比如对象中的一个对象 const original_object = { prop1: 'string1'
const original_object = { prop1 : 'string1', prop2: 'string2' };
const { prop1, ...rest } = original_object;
在上述情况下,删除的属性(prop1)将不再存在于rest对象中
假设有一个更复杂的属性我想删除,比如对象中的一个对象
const original_object = {
prop1: 'string1'
prop2: {
prop3: 'string3',
prop4: 'string4'
}
}
const { *remove prop3 of prop2 only here*, ...rest} = original_object;
console.log(prop3); // => 'string3';
最优雅/最简单的解决方案是什么?除了
prop2
中的prop3
之外,我希望所有内容都包含在对象中,并且结构完全相同 分两步执行-首先将prop3
解构出来,然后创建一个新对象,将外部对象的其余部分与prop2以及从中移除的prop3结合起来:
const原始对象={
prop1:‘string1’,
提案2:{
prop3:‘string3’,
prop4:‘string4’
}
};
const{prop2:{prop3,…restProp2},…restOrig}=原始_对象;
const newObj={…restOrig,prop2:restProp2};
console.log(prop3);//=>'3′;
console.log(newObj)代码>我对黑客感兴趣,因为每增加一个对象的深度,就需要另一行代码将其重新组合起来。