在JavaScriptES6中,如何从散列中只获取几个属性

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

本文关键字:获取 属性 几个 JavaScriptES6      更新时间:2023-09-26

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

类似这样的东西:

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!

有没有一个运算符或方法可以做到这一点?

另一种方法是销毁:

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

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

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

尝试以下操作-

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