【发布时间】:2018-02-10 00:45:38
【问题描述】:
有什么方法可以解构对象并将其属性分配到数组而不是变量?例如:
const obj = { a: 1, b: 2 };
const { a, b } = obj;
const arr = [a, b];
这可行,但需要将变量重新表示为数组值。
我试过了:
const arr = [(const { a, b } = obj)];
但这是一个语法错误。
我和Object.values 有类似的想法
const arr = Object.values((const { red } = chalk));`
...但这有同样的问题,不能在表达式中进行解构。
【问题讨论】:
-
有理由不直接使用
[obj.a, obj.b]吗? -
@TitianCernicova-Dragomir 是的,这可以正常工作,但是如果我有很多要解构的属性,我必须输入很多
obj.。 -
在第二个示例中,您只有一个属性
const arr = Object.values((const { red } = chalk));为什么没有const arr = Object.values(chalk.red)? -
但是,你想单独添加对象的每个属性还是像 [{a: 1, b : 2}]
-
FWIW 你可以让你的原始代码一点更简洁:
const { a, b } = obj, arr = [ a, b ];。但是,您仍然需要输入两次名称,并且仍然会在本地范围内引入两个新变量。
标签: javascript typescript