首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript:将对象数组转换为hashmap

JavaScript:将对象数组转换为hashmap
EN

Stack Overflow用户
提问于 2019-06-25 04:05:22
回答 4查看 3K关注 0票数 3

我在数组中有一组值,其中每个值都有一个IDLABEL

一旦我有了值数组并输入了console value[0]value[1],输出就是:

代码语言:javascript
运行
复制
value[0] 
Object {ID: 0, LABEL: turbo}

value[1] 
Object {ID: 1, LABEL: classic}

如何像键值(ID-标签)对一样将这些值存储在散列映射中,并将它们存储在json中?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-06-25 04:14:15

这可以通过调用值数组上的reduce (即data)来获得所需的哈希映射(其中ID是键,值是对应的LABEL)来实现:

代码语言:javascript
运行
复制
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);
 
/*
More concise syntax:
console.log(data.reduce((result, { ID, LABEL }) => ({ ...result, [ ID ] : LABEL }), {}))
*/

票数 3
EN

Stack Overflow用户

发布于 2019-06-25 05:37:49

尝试(其中h={})

代码语言:javascript
运行
复制
data.map(x=> h[x.ID]=x.LABEL );

代码语言:javascript
运行
复制
const data = [
  {ID: 0, LABEL: 'turbo'},
  {ID: 1, LABEL: 'classic'},
  {ID: 3, LABEL: 'abc'}
];

let h={}
data.map(x=> h[x.ID]=x.LABEL );

console.log(h);

票数 2
EN

Stack Overflow用户

发布于 2019-06-25 04:13:59

您可以迭代数组中的每个项,并使用ID proeprty作为javascript对象keyLABEL作为value

代码语言:javascript
运行
复制
var value = [{ID: 0, LABEL: "turbo"}, {ID: 1, LABEL: "classic"}];

let theNewMap = {};
for(var i = 0; i < value.length; i++) {
  theNewMap[value[i].ID] = value[i].LABEL;
}

// theNewMap Should now be a map with 'id' as key, and 'label' as value
console.log(JSON.stringify(theNewMap ))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56746693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档