2017-10-18 37 views
1

我有一个这样的对象:地图一个javascript的对象数组结构

{"label":["Option 1","Option 2","Option 3"],"share":[0.0650068849312104,0.00873977167120444,0.00873977167120444]} 

我需要将其转换为一个数组,看起来像这样:

[{label: "Option 1", share: 0.0650068849312104}, {label: "Option 2", share: 0.00873977167120444}, {label: "Option 3", share: 0.00873977167120444}] 

换句话说,它需要成为与数据点数量相同长度的对象数组。

我对JavaScript很新,所以我很抱歉如果这是一个糟糕的问题。我在别处找不到满意的理由。我需要使用像object.keys()这样的东西吗?如果是这样,我该如何使用它?我不清楚如何将其转换为数组并将其映射到此结构中。

任何和所有帮助表示赞赏!

编辑:除去参考JSON

回答

3
const result = obj.label.map((label,index) => ({label, share:obj.share[index]})); 

OBJ是你的问题的第一个代码行(或引用指向它),那么结果将是第二排的代码。

+2

'map'遍历'label'数组的条目,并通过调用每个元素的函数来创建一个新数组。 ''=''语法是一个函数的缩写,它使用'label'和'index'参数作为'label'数组中的条目,然后以索引的形式返回一个对象,使用'index'来抽取匹配来自'share'数组的值。 'map'返回如此创建的数组。 –

+0

@jacob youre welcome;)以及其易于执行的神奇功能:它只是一个* arrow函数,带有javascripts新对象语法和Array.map。请不要复制和粘贴,尝试从中学习;) –

+0

当然,来自Karl的解释有助于解释它是如何工作的。我将来肯定会把这个策略用于其他事情。 –

相关问题