Reputation: 11
I have a JSON in the below format
waypoints = [
{
lat: 22,
lng: 44
},
{
lat: 55,
lng: 77
}
]
I need to convert it into the following format using JS
[[22, 44], [55, 77]]
Please can some one help me with a solution
Upvotes: 0
Views: 81
Reputation: 1
You can use:
waypoints = [{lat: 22, lng: 44 }, { lat: 55, lng: 77 } ];
var innerArr = [];
var requiredArray = [];
for (var i = 0; i < waypoints.length; i++) {
innerArr = [];
innerArr.push(waypoints[i].lat);
innerArr.push(waypoints[i].lng);
requiredArray.push(innerArr);
}
Upvotes: 0
Reputation: 74738
You can create a new array with use of .map
method which in execution creates a new array without modifying the original array:
var waypoints = [{
lat: 22,
lng: 44
}, {
lat: 55,
lng: 77
}];
var newArr = waypoints.map(function(obj) {
return [obj.lat, obj.lng];
});
document.body.textContent = JSON.stringify(newArr);
Upvotes: 2
Reputation: 2400
You can use for...in loop and get the array
var array=[];
for(var i =0;i< waypoints.length;i++){
var nestedArray=[];
for(var key in waypoints[i]){
nestedArray.push(waypoints[i][key])
}
array.push(nestedArray)
}
Found other answers using map
functionality of JavaScript. Thats good!!!
Upvotes: 1
Reputation: 119827
Just use map
.
var foo = waypoints.map(function(waypoint){
return [waypoint.lat, waypoint.lng];
});
Upvotes: 4
Reputation: 5201
var waypoints = [
{
lat: 22,
lng: 44
},
{
lat: 55,
lng: 77
}
];
var array = [];
for (i in waypoints) {
array.push([]);
for (j in waypoints[i]) {
array[i].push(waypoints[i][j]);
}
}
Upvotes: 0