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

How to convert an object into an array of objects?

所以我得到了一些状态,它是一个看起来像这样的对象

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

并且对象内的条目数量可能会改变,它可能有 3 个数组,也可能有 10 个。它需要是动态的 我必须将这些显示为计数(在饼图中),它接受这样的数据,数据是 JSX 标签内的道具

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

x 输出为名称,y 输出为数字(不是百分比,库为我解决了)

我已经尝试使用此处的一些示例,例如 this thread,但我就是不明白

偏好 ES6 语法 & 如果您有兴趣,我正在使用 Victory 作为我的绘图库

尝试使用 Array.map and Object.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);

您甚至可以简单地使用带键的地图:(支持 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);