2015-08-28 2 views
0

У меня есть JSON в приведенном ниже форматеСоздать массив из JSON

waypoints = [ 
{ 
lat: 22, 
lng: 44 
}, 

{ 
lat: 55, 
lng: 77 
} 

] 

Мне нужно, чтобы преобразовать его в следующем формате с помощью JS

[[22, 44], [55, 77]] 

Пожалуйста, может кто-нибудь помочь мне с решение

+4

Вы даже попытался найти подобный вопрос? – bumpy

+0

Подсказка: 'Array.map' – Joseph

+1

В вашем вопросе нет JSON. Это инициализатор массива, содержащий инициализаторы объектов. Если вы используете исходный код JavaScript, вы не имеете дело с JSON (если оно не находится внутри строки). –

ответ

1

Вы можете использовать для ... в цикле и получить массив

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

Нашли другие ответы, используя map Функциональность JavaScript. Это хорошо!!!

2

Вы можете создать новый массив с использованием .map метода, который при выполнении создает новый массив без изменения исходного массива:

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

+1

Я рекомендую прочитать [this] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), чтобы понять, как работает '.map()' и что это предназначено для: – Andreas

+0

@ Аndreas true! Я всегда пропускаю метод '.map()'. – Jai

+0

@RGraham Я позабочусь об этом сейчас. – Jai

4

Просто используйте map.

var foo = waypoints.map(function(waypoint){ 
    return [waypoint.lat, waypoint.lng]; 
}); 
0
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]); 
    } 
} 
+1

Добро пожаловать в переполнение стека! Пожалуйста, рассмотрите возможность редактирования сообщения, чтобы добавить больше объяснений о том, что делает ваш код, и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. – SuperBiasedMan

0
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); 
    } 
Смежные вопросы