如何将一个对象转换为一个对象数组?

时间:2018-10-04 13:04:57

标签: javascript reactjs victory-charts

所以我有一个看起来像这样的对象状态

object:{
  foo: Array[3]
  bar: Array[6]
}

并且对象内的条目数量可能会发生变化,可能有3个数组,可能有10个。它必须是动态的 我必须将其显示为计数(在饼图中),以接受数据,使其看起来像这样,其中数据是JSX标签内的道具

data:{[
  {x:foo, y:foo.length},
  {x:bar, y:bar.length}
]}

x输出为名称,y输出为数字(不是百分数,lib为我计算)

我尝试在此处使用一些示例,例如this thread,但我只是不明白

ES6语法的首选项& 如果您有兴趣,我正在将Victory用于我的图形库

2 个答案:

答案 0 :(得分:5)

请尝试使用Array.mapObject.entries

let obj = {foo : [1,2,3], bar : [1,2,3,4,5,6]};
let data = Object.entries(obj).map(([k,v]) => ({x:k, y:v.length}));
console.log(data);

答案 1 :(得分:0)

您甚至可以简单地将map与以下按键配合使用:(以支持ie)

const obj = {foo : [1,2,3], bar : [1,2,3,4,5,6]};
const d = Object.keys(obj).map(el => ({x:el, y:obj[el].length}));
console.log(d);