在 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 }
。
在这种情况下,a
、b
和 d
也被复制。
var copied = {};
var propertiesToCopy = ['a', 'b'];
for (var key in originalObject) {
if (originalObject.hasOwnProperty(key) && propertiesToCopy.indexOf(key) != -1) {
copied[key] = originalObject[key];
}
}
我有一个具有某些属性的对象。我想提取一些众所周知的属性,跳过任何不存在的属性。
像这样:
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 }
。
在这种情况下,a
、b
和 d
也被复制。
var copied = {};
var propertiesToCopy = ['a', 'b'];
for (var key in originalObject) {
if (originalObject.hasOwnProperty(key) && propertiesToCopy.indexOf(key) != -1) {
copied[key] = originalObject[key];
}
}