在 JavaScript ES6 中,我如何只从散列中获取几个属性?

In JavaScript ES6, how do I take just a few properties from a hash?

我有一个具有某些属性的对象。我想提取一些众所周知的属性,跳过任何不存在的属性。

像这样:

let x = {a: 1, b: 2, c: 3};
let y = take a, b, d from x; // Not real JS!

y 现在看起来像这样:

{a: 1, b: 2} // Note that d is missing!

是否有执行此操作的运算符或方法?

尝试以下 -

out = {a: in.a, b:in.b, d:in.d};
out = JSON.parse(JSON.stringify(out));

另一种方法是解构:

let {a, b, d} = x;
let y = {a, b, d};

这会自动取出您要使用的属性。 然后你可以将它们与对象文字一起放回原处,这在 ES6 中不需要你做 { a: a, b : b }。如果名称相同,您可以只写 { a, b }

在这种情况下,abd 也被复制。

var copied = {};
var propertiesToCopy = ['a', 'b'];
for (var key in originalObject) {
  if (originalObject.hasOwnProperty(key) && propertiesToCopy.indexOf(key) != -1) {
    copied[key] = originalObject[key];
  }
}