gpt4 book ai didi

javascript - 将对象属性解构为数组值

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:43 25 4
gpt4 key购买 nike

有什么方法可以解构对象并将其属性分配给数组而不是变量?例如:

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));`

...但这有同样的问题,即无法在表达式中进行解构。

最佳答案

你真正想要的答案是回到过去并使用 the with statement在它(正确地)被认为是邪恶之前:

var obj = { a: 1, b: 2 };
var arr;
with (obj) {
arr = [a, b];
}

任何现代答案都需要比您想要的更多的输入。一个相对类型安全的让你更接近的答案是使用字符串文字。把这个贴在图书馆里:

function arrayDestruct<T, K extends keyof T>(obj:T, ...keys: K[]): T[K][] {
return keys.map(k => obj[k]);
}

然后使用它:

const arr = arrayDestruct(obj, 'a', 'b'); // recognized as number[]

您必须键入一些引号,但它有效。 It could even be overloaded to produce tuples ,但我不知道你是否真的足够关心。无论如何,祝你好运!

关于javascript - 将对象属性解构为数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709596/

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