【发布时间】:2016-06-26 15:26:22
【问题描述】:
假设我有以下对象:
const user = {
id: 42,
displayName: "jdoe",
fullName: {
firstName: "John",
lastName: "Doe"
}
};
我只想要id 和fullName。
我会做以下事情:
const { id, fullName } = user
很简单,对吧?
现在假设我想根据另一个名为 fields 的变量的值进行解构。
const fields = [ 'id', 'fullName' ]
现在我的问题是:如何根据键数组进行解构?
我无耻地尝试了以下方法但没有成功:
let {[{...fields}]} = user 和 let {[...fields]} = user。有什么办法可以做到吗?
谢谢
【问题讨论】:
-
这是一个关于解构所有属性的相关问题:stackoverflow.com/questions/31907970/… - 可能同样的答案也适用于这里
-
如果将
fields更改为空数组,那么您将不会创建任何变量,并且之后的任何代码都会受到威胁。使用带有文字的 const 可以确保可以事先确定风险,但像fields = nonliteralvar这样的东西会产生问题。