ReactJS Преобразует json в пару [имя: значение:]

#javascript #node.js #reactjs #json

Вопрос:

У меня есть этот объект json.

 [  {  "crime": "LARCENY-NON_VEHICLE",  "count": "23217"  },  {  "crime": "AUTO_THEFT",  "count": "13675"  },  {  "crime": "LARCENY-FROM_VEHICLE",  "count": "28627"  },  {  "crime": "BURGLARY-RESIDENCE",  "count": "16312"  } ]  

Мне нужно отобразить эти данные в виде круговой диаграммы, поэтому мне нужно преобразовать их в этот формат.

 [  {name: "LARCENY-NON_VEHICLE", value: 23217},  {name: "AUTO_THEFT", value: 13675},  {name: "LARCENY-FROM_VEHICLE", value: 28627},  {name: "BURGLARY-RESIDENCE", value: 16312}   ]  

Вот как я получаю данные с помощью axios.

Ответ №1:

Вы можете просто использовать map для возврата нового массива со значениями из старого массива

 const data = [{  "crime": "LARCENY-NON_VEHICLE",  "count": "23217"  },  {  "crime": "AUTO_THEFT",  "count": "13675"  },  {  "crime": "LARCENY-FROM_VEHICLE",  "count": "28627"  },  {  "crime": "BURGLARY-RESIDENCE",  "count": "16312"  } ];  const newData = data.map(item =gt; {  return {  name: item.crime,  value:  item.count //   to convert string to number  } });  console.log(newData) 

Ответ №2:

Вы можете просто отформатировать массив, вызвав функцию map

 const arr = [  {  crime: "LARCENY-NON_VEHICLE",  count: "23217",  },  {  crime: "AUTO_THEFT",  count: "13675",  },  {  crime: "LARCENY-FROM_VEHICLE",  count: "28627",  },  {  crime: "BURGLARY-RESIDENCE",  count: "16312",  }, ];  arr.map((e) =gt; ({  name: e.crime,  count: Number.parseInt(e.count) }))