gpt4 book ai didi

JavaScript:将对象数组转换为泛型中的 HashMap

转载 作者:行者123 更新时间:2023-11-30 07:12:09 26 4
gpt4 key购买 nike

我在数组中有一组值,其中每个值都有一个 ID 和标签。

const data = [
{ID: 0, LABEL: 'turbo'},
{ID: 1, LABEL: 'classic'},
{ID: 7, LABEL: 'unknown'}
];

const hashMap = data.reduce((result, item) => {
return { ...result, [ item.ID ] : item.LABEL };
}, {});

const hashMapJson = JSON.stringify(hashMap);

console.log('hashMap', hashMap);
console.log('hashMapJson', hashMapJson);

但如果我有以下 json 对象,其中的键略有不同,它当然不会处理。我想知道如何使上述解决方案更通用以处理不同的输入。

const data = [
{K_ID: 0, K_LABEL: 'turbo'},
{L_ID: 1, K_LABEL: 'classic'},
{S_ID: 7, K_LABEL: 'unknown'}
];

最佳答案

您可以将 hashMap 函数更改为如下所示:

const data = [{K_ID: 0, K_LABEL: 'turbo'},{L_ID: 1, K_LABEL: 'classic'},{S_ID: 7, K_LABEL: 'unknown'}];

const hashMap = data.reduce((result, item) => {
let id
let label

Object.keys(item).forEach((key) => {
if (key.includes('ID')) {
id = key
} else if (key.includes('LABEL')) {
label = key
}
})

return { ...result, [ item[id] ] : item[label] };
}, {});

console.log( hashMap );

这是假设您传递的数据集 (data) 与您提供的示例中的数据集相似。只要 key 包含 ID,它就会使 id 成为 key ,只要 key 包含 LABEL,它就会成为 LABEL 的 key

关于JavaScript:将对象数组转换为泛型中的 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56759399/

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