假设我有一个对象foo,其属性为a 和b,但我想将这些属性的值传递给另一个对象bar 具有属性 x 和 y 其中 bar.x
获取 foo.a
的值bar.y
获取 foo.b
的值。
想到用 ES5 实现此目的的第一种方法如下所示。
var foo = { a: 5, b: 17 };
var bar = { x: foo.a, y: foo.b };
这已经很简洁了,但是在每种情况下都必须引用 foo
来访问它的属性,这对于更大的属性映射来说会很吵。查看 ES6 中的新解构功能,似乎可以将嵌套对象解构为一组扁平的变量,但我还没有找到任何示例指出可以指定一个对象来解构属性值。此功能是否不存在,或者我只是没有找到说明如何完成此操作的示例?如果不可能,是否有任何其他巧妙的技巧可以实现类似的结果?
明确地说,我希望能够按照下面的示例做一些事情。
var foo = { a: 5, b: 17 };
var bar = { a: x, b: y } = foo;
这个问题与 ( One-liner to take some properties from object in ES 6) 不同,因为我正在寻找一种方法来避免写 foo 而不是属性列表。事实上,为显式映射保留属性列表是我的目标。
最佳答案
解构赋值让你很容易做到这一点
let foo = {a: 5, b: 17, c: 10};
let {a,b,c} = foo;
let bar = {x: a, y: b, c};
console.log(bar);
// => {x:5, y:17, c:10}
关于javascript - 在 ES6/ES2015 中,是否有更简洁的方法将一个对象的属性映射到另一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471531/