如何将对象转换为对象数组?
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);
所以我得到了一些状态,它是一个看起来像这样的对象
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);