gpt4 book ai didi

javascript - 将枚举对象转换为数组在 javascript 中返回额外的对象

转载 作者:行者123 更新时间:2023-12-05 02:34:59 30 4
gpt4 key购买 nike

我想知道如何在 javascript 中将枚举对象转换为对象数组

它有效,但我得到的是四个对象数组而不是两个对象数组的输出

const result = Object.entries(countries).map(([value, key]) =>
({ country: value.toLowerCase(), id: key })
);

enum countries {
SINGAPORE = 123,
DENMARK = 246
}

实际输出:

[
{country: '123', id: 'singapore'}
{country: '246', id: 'denmark'}
{country: 'singapore', id: 123}
{country: 'denmark', id: 246}
]

预期输出:

[
{country: "singapore", id: 123},
{country: "denmark", id: 246}
]

最佳答案

当您使用 enum 时,理解 typescript 生成的 JavaScript 很重要 - 您的将如下所示:

{
"123":"SINGAPORE",
"246":"DENMARK",
"SINGAPORE":123,
"DENMARK":246
}

这应该清楚说明为什么在使用 Object.entries(或 Object.keys 等)枚举时会得到 4 个项目。

如果你愿意,你可以过滤掉数值

var countries = {
"123":"SINGAPORE",
"246":"DENMARK",
"SINGAPORE":123,
"DENMARK":246
}

const result = Object.entries(countries)
.filter(([key,_]) => !isNaN(key))
.map(([key, value]) => ({ country: value.toLowerCase(), id: key }));

console.log(result);

关于javascript - 将枚举对象转换为数组在 javascript 中返回额外的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70653785/

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