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...

3
  • 3
    Huh? obj is already an array. What is the expected result? Commented Apr 5, 2019 at 15:49
  • So you're trying to convert an array of objects to an array of string arrays? Commented Apr 5, 2019 at 15:50
  • i need it in the format arr = [[1527206400,3][1527811200,2]] Commented Apr 5, 2019 at 15:50

5 Answers 5

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);


Sign up to request clarification or add additional context in comments.

Comments

3

So, something like

obj.map(({ date, L }) => [date, L]);

Comments

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]));

Comments

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)

Comments

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);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.