ES6-解构分配-将某些属性从现有对象解压缩到新对象?

Rah*_*dhi 3 javascript object destructuring ecmascript-6

是否可以将某个对象的某些键拆包到新对象?

比方说,我想按键(3个拷贝abc从)test对象到一个新的对象(abc)。下面提到的代码将起作用。

const test = {a:1, b:2, c:3, d:4, e:5 };
const {a, b, c} = test;
const abc = { a, b, c, f: 6};
Run Code Online (Sandbox Code Playgroud)

有什么方法可以在一个语句中完成?

还有另一种方法。

const test = {a:1, b:2, c:3, d:4, e:5 };
const abc = { ...test, f: 6};
Run Code Online (Sandbox Code Playgroud)

但是,使用这种方法,我后来不得不删除不需要的键(de在我的情况)。

(最佳情况解决方案:如果我们不必跟踪不需要的密钥。可以有n个不需要的密钥。)

bug*_*ugs 6

您可以使用对象其余部分来破坏初始对象:

const test = {a:1, b:2, c:3, d:4, e:5 };
const {d, e, ...abc} = { ...test, f: 6};

console.log(abc);
Run Code Online (Sandbox Code Playgroud)

  • 这是特定于排除键d和e的-我认为问题在于是否存在许多未知键? (2认同)
  • 如果测试包含大量密钥,那么您的开销将是巨大的,其中您只需要三个 (2认同)
  • @FabioLolli。仍然,聪明的答案。 (2认同)