Как преобразовать объект в массив объектов? - PullRequest
0 голосов
/ 04 октября 2018

Итак, у меня есть состояние, которое выглядит как этот объект

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

И количество записей внутри объекта может измениться, у него может быть 3 массива, у него может быть 10. Онодолжен быть динамическим, я должен отображать их как счетчики (на круговой диаграмме), который принимает данные, чтобы выглядеть следующим образом, с данными, являющимися опорой внутри тега JSX

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

x выводит какname и y выводятся в виде числа (не в процентах, библиотека работает для меня)

Я попытался использовать некоторые примеры здесь, такие как этот поток , но я простоне получаю

Предпочтение синтаксису ES6, и я использую Victory для моей библиотеки графических файлов, если вам интересно

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете даже просто использовать карту с ключами: (для поддержки т.е.)

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);
0 голосов
/ 04 октября 2018

Попробуйте выполнить, используя Array.map и 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);
...