gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:14:29 25 4
gpt4 key购买 nike

假设我有一个对象foo,其属性为ab,但我想将这些属性的值传递给另一个对象bar 具有属性 xy 其中 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com