2016-03-12 2 views
0

Привет У меня есть объект, который выводит к этому с помощью JSON.stringifyJavascript Object Map (расплющить)

{"0":["test1","ttttt","","","","","","","",""],"1":["test2","ghjgjhgjh","","","","","","","",""]} 

Я хотел бы иметь выход, как это.

[["test1","ttttt","","","","","","","",""],["test2","ghjgjhgjh","","","","","","","",""]] 

Я попытался это, чтобы удалить «0» и «1» с помощью .map

var itemjson = $.map(cleanedGridData, function (n) { 
     return n; 
    }); 

однако это дает выход (ниже), который сглаженный далеко.

["test1", "ttttt", "", "", "", "", "", "", "", "", "test2", "ghjgjhgjh", "", "", "", "", "", "", "", ""] 

ответ

0

Измените свой оператор возврата, чтобы положить n в другой массив.

return [n]; 

Это потому, что JQuery-х $.map сглаживает массив вы возвращаетесь в результат, так что вам нужно, чтобы обернуть его во внешнем массиве.

Либо это, либо просто используйте петлю for in.

var itemjson = []; 
for (var key in cleanedGridData) { 
    itemjson.push(cleanedGridData[key]); 
} 
3

Вы можете использовать это, чтобы вытащить значение:

var res = {"0":["test1","ttttt","","","","","","","",""],"1":["test2","ghjgjhgjh","","","","","","","",""]} 
Object.keys(res).map(function(key) { 
    return res[key]; 
}); 

Object.keys будет список всех ключей в вашем исходном объекте. Затем вы можете перебирать эти ключи с помощью карты и вытаскивать значения в этой функции.

+0

я, как решения, которые не требуют JQuery :) – Sebivor

0

После среды (т.е. в случае браузеров все браузеры, которые вы хотите поддержать) имеет Object.valuesspread operator) доступны вы можете пойти на

[...Object.values(cleanedGridData)] 
Смежные вопросы