Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert object to array in Javascript / React

Using REST, I am retrieving an object(JSON format) which is to be converted to an array so that it can be inserted into a table.

This is done in the rendering function of React.

The input is updated every N minutes from the back-end.

How do I convert an object to an array?

I need only the values, not the keys, since the keys are already present as column values beforehand in the table itself.

like image 510
cbll Avatar asked Jan 05 '17 13:01

cbll


2 Answers

You can use Object#values (ECMAScript 2017), but it's not supported by IE (see browser's compatibility).

Note: The ECMAScript 6 specification defines in which order the properties of an object should be traversed. This blog post explains the details.

const map = { a: 1, b: 2, c: 3 };

const result = Object.values(map);

console.log(result);

If you need to support IE, you can use Object#keys with Array#map:

const map = { a: 1, b: 2, c: 3 };

const result = Object.keys(map).map((key) => map[key]);

console.log(result);
like image 182
Ori Drori Avatar answered Nov 18 '22 10:11

Ori Drori


I am not sure by map you mean the Map object or an ordinary JS object. However, just for variety I would like to mention that the Map objects are mostly (probably always) stringified like JSON.stringify([...myMap]). So if you happen to receive a Map object in JSON data may be you should do something like;

var myMap = new Map().set(1,"hey").set(2,"you"),
  mapData = JSON.stringify([...myMap]),
   values = JSON.parse(mapData).map(d => d[1]);
console.log("mapData:",mapData);
console.log("values:",values);
like image 43
Redu Avatar answered Nov 18 '22 08:11

Redu