在 ES6/ES2015 中是否有一种更简洁的方法将一个对象的属性映射到另一个对象?

2024-04-06

说我有一个对象foo有属性a and b但我想将这些属性的值传输到另一个对象bar有属性x and y where bar.x得到的值foo.a and 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;

这个问题不同于(从 ES 6 中的对象获取一些属性的单行代码 https://stackoverflow.com/questions/25553910/one-liner-to-take-some-properties-from-object-in-es6)因为我正在寻找一种避免写作的方法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}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ES6/ES2015 中是否有一种更简洁的方法将一个对象的属性映射到另一个对象? 的相关文章

随机推荐