1

I am trying to convert an object into an array in js.

i tried a number of things see below. nothing works.

var obj = [{"date":"1527206400","L":"3"},{"date":"1527811200","L":"2"},{"date":"1528416000","L":"2"},{"date":"1529020800","L":"3"},{"date":"1529625600","L":"3"},{"date":"1530057600","L":"3"},{"date":"1530835200","L":"3"},{"date":"1532044800","L":"3"},{"date":"1532649600","L":"3"},{"date":"1533254400","L":"3"},{"date":"1533859200","L":"3"},{"date":"1534464000","L":"3"},{"date":"1535068800","L":"3"},{"date":"1535673600","L":"3"},{"date":"1536278400","L":"3"},{"date":"1536883200","L":"2"},{"date":"1537488000","L":"3"},{"date":"1538092800","L":"3"},{"date":"1538697600","L":"2"},{"date":"1539302400","L":"3"},{"date":"1539907200","L":"2"},{"date":"1540512000","L":"3"},{"date":"1541116800","L":"2"},{"date":"1541721600","L":"2"},{"date":"1542326400","L":"1"},{"date":"1542931200","L":"-1"},{"date":"1543536000","L":"0"},{"date":"1544140800","L":"0"},{"date":"1544745600","L":"0"},{"date":"1545350400","L":"0"},{"date":"1545955200","L":"0"},{"date":"1546560000","L":"1"},{"date":"1547164800","L":"1"},{"date":"1547769600","L":"0"},{"date":"1548374400","L":"0"},{"date":"1548979200","L":"-1"},{"date":"1549584000","L":"0"},{"date":"1550188800","L":"-1"},{"date":"1550793600","L":"-1"},{"date":"1551398400","L":"-1"},{"date":"1552003200","L":"-1"},{"date":"1552608000","L":"-1"},{"date":"1553212800","L":"0"},{"date":"1553817600","L":"0"}];

var arr = Array.from(Object.keys(obj), k=>obj[k]);

console.log(arr)

i want

arr = [[1527206400,3][1527811200,2]]

i have followed some help from this post to no avail: How to Convert...

AndiAna
  • 854
  • 6
  • 26

5 Answers5

4

You can use map to loop thru the array and return a new ordered array.

var obj = [{"date":"1527206400","L":"3"},{"date":"1527811200","L":"2"},{"date":"1528416000","L":"2"},{"date":"1529020800","L":"3"},{"date":"1529625600","L":"3"},{"date":"1530057600","L":"3"},{"date":"1530835200","L":"3"},{"date":"1532044800","L":"3"},{"date":"1532649600","L":"3"},{"date":"1533254400","L":"3"},{"date":"1533859200","L":"3"},{"date":"1534464000","L":"3"},{"date":"1535068800","L":"3"},{"date":"1535673600","L":"3"},{"date":"1536278400","L":"3"},{"date":"1536883200","L":"2"},{"date":"1537488000","L":"3"},{"date":"1538092800","L":"3"},{"date":"1538697600","L":"2"},{"date":"1539302400","L":"3"},{"date":"1539907200","L":"2"},{"date":"1540512000","L":"3"},{"date":"1541116800","L":"2"},{"date":"1541721600","L":"2"},{"date":"1542326400","L":"1"},{"date":"1542931200","L":"-1"},{"date":"1543536000","L":"0"},{"date":"1544140800","L":"0"},{"date":"1544745600","L":"0"},{"date":"1545350400","L":"0"},{"date":"1545955200","L":"0"},{"date":"1546560000","L":"1"},{"date":"1547164800","L":"1"},{"date":"1547769600","L":"0"},{"date":"1548374400","L":"0"},{"date":"1548979200","L":"-1"},{"date":"1549584000","L":"0"},{"date":"1550188800","L":"-1"},{"date":"1550793600","L":"-1"},{"date":"1551398400","L":"-1"},{"date":"1552003200","L":"-1"},{"date":"1552608000","L":"-1"},{"date":"1553212800","L":"0"},{"date":"1553817600","L":"0"}];

var result = obj.map(o=> [o.date, o.L]);

console.log(result);

..Or you can use Object.values to convert the object into an array. But this method does not guarantee the order of the inner array.

var obj = [{"date":"1527206400","L":"3"},{"date":"1527811200","L":"2"},{"date":"1528416000","L":"2"},{"date":"1529020800","L":"3"},{"date":"1529625600","L":"3"},{"date":"1530057600","L":"3"},{"date":"1530835200","L":"3"},{"date":"1532044800","L":"3"},{"date":"1532649600","L":"3"},{"date":"1533254400","L":"3"},{"date":"1533859200","L":"3"},{"date":"1534464000","L":"3"},{"date":"1535068800","L":"3"},{"date":"1535673600","L":"3"},{"date":"1536278400","L":"3"},{"date":"1536883200","L":"2"},{"date":"1537488000","L":"3"},{"date":"1538092800","L":"3"},{"date":"1538697600","L":"2"},{"date":"1539302400","L":"3"},{"date":"1539907200","L":"2"},{"date":"1540512000","L":"3"},{"date":"1541116800","L":"2"},{"date":"1541721600","L":"2"},{"date":"1542326400","L":"1"},{"date":"1542931200","L":"-1"},{"date":"1543536000","L":"0"},{"date":"1544140800","L":"0"},{"date":"1544745600","L":"0"},{"date":"1545350400","L":"0"},{"date":"1545955200","L":"0"},{"date":"1546560000","L":"1"},{"date":"1547164800","L":"1"},{"date":"1547769600","L":"0"},{"date":"1548374400","L":"0"},{"date":"1548979200","L":"-1"},{"date":"1549584000","L":"0"},{"date":"1550188800","L":"-1"},{"date":"1550793600","L":"-1"},{"date":"1551398400","L":"-1"},{"date":"1552003200","L":"-1"},{"date":"1552608000","L":"-1"},{"date":"1553212800","L":"0"},{"date":"1553817600","L":"0"}];

var result = obj.map(o=> Object.values(o));

console.log(result);

Eddie
  • 26,593
  • 6
  • 36
  • 58
3

So, something like

obj.map(({ date, L }) => [date, L]);
mbojko
  • 13,503
  • 1
  • 16
  • 26
1

You can use simple map for this:

const obj = [{"date":"1527206400","L":"3"},{"date":"1527811200","L":"2"}];

console.log(obj.map(({date,L})=>[date,L]));
Vadim Hulevich
  • 1,803
  • 8
  • 17
1

var obj = [{"date":"1527206400", "L":"3"}, {"date":"1527811200", "L":"2"}, {"date":"1528416000", "L":"2"}, {"date":"1529020800", "L":"3"}, {"date":"1529625600", "L":"3"}, {"date":"1530057600", "L":"3"}, {"date":"1530835200", "L":"3"}, {"date":"1532044800", "L":"3"}, {"date":"1532649600", "L":"3"}, {"date":"1533254400", "L":"3"}, {"date":"1533859200", "L":"3"}, {"date":"1534464000", "L":"3"}, {"date":"1535068800", "L":"3"}, {"date":"1535673600", "L":"3"}, {"date":"1536278400", "L":"3"}, {"date":"1536883200", "L":"2"}, {"date":"1537488000", "L":"3"}, {"date":"1538092800", "L":"3"}, {"date":"1538697600", "L":"2"}, {"date":"1539302400", "L":"3"}, {"date":"1539907200", "L":"2"}, {"date":"1540512000", "L":"3"}, {"date":"1541116800", "L":"2"}, {"date":"1541721600", "L":"2"}, {"date":"1542326400", "L":"1"}, {"date":"1542931200", "L":"-1"}, {"date":"1543536000", "L":"0"}, {"date":"1544140800", "L":"0"}, {"date":"1544745600", "L":"0"}, {"date":"1545350400", "L":"0"}, {"date":"1545955200", "L":"0"}, {"date":"1546560000", "L":"1"}, {"date":"1547164800", "L":"1"}, {"date":"1547769600", "L":"0"}, {"date":"1548374400", "L":"0"}, {"date":"1548979200", "L":"-1"}, {"date":"1549584000", "L":"0"}, {"date":"1550188800", "L":"-1"}, {"date":"1550793600", "L":"-1"}, {"date":"1551398400", "L":"-1"}, {"date":"1552003200", "L":"-1"}, {"date":"1552608000", "L":"-1"}, {"date":"1553212800", "L":"0"}, {"date":"1553817600", "L":"0"}];
var arr = obj.map(function(e){ return [e.date,e.L] });
console.log(arr)
Shoyeb Sheikh
  • 2,659
  • 2
  • 10
  • 19
0

You can loop through each objects keys and push values to array, then push that array to new array.

var arr = [
  {"date":"1527206400","L":"3"},{"date":"1527811200","L":"2"},
  {"date":"1528416000","L":"2"},{"date":"1529020800","L":"3"},
  {"date":"1529625600","L":"3"}
]

var newArr = [];

arr.forEach(function(x) {
  var elemArr = [];
  for (var key in x) {
    elemArr.push(x[key]);
  }
  newArr.push(elemArr);
})

console.log(newArr);
Isaac Vidrine
  • 1,568
  • 1
  • 8
  • 20