我JSON對象的數組如下:轉換陣列
var out = [{
1: {
name: 'Name 1',
id: 'one'
}
}, {
2: {
name: 'Name 2',
id: 'two'
}
}];
我試圖將其轉換爲2-d數組:
var out = [[1,object],[2,object]];
我試圖使用json.encode(out),任何方法或方法來轉換此?
我JSON對象的數組如下:轉換陣列
var out = [{
1: {
name: 'Name 1',
id: 'one'
}
}, {
2: {
name: 'Name 2',
id: 'two'
}
}];
我試圖將其轉換爲2-d數組:
var out = [[1,object],[2,object]];
我試圖使用json.encode(out),任何方法或方法來轉換此?
只是一味
var output = out.map(function(val){
var keyName = parseInt(Object.keys(val)[0],10);
var value = val[keyName];
return [keyName, value];
});
DEMO
var out = [{
1: {
name: 'Name 1',
id: 'one'
}
}, {
2: {
name: 'Name 2',
id: 'two'
}
}];
var output = out.map(function(val) {
var keyName = parseInt(Object.keys(val)[0],10);
var value = val[keyName];
return [keyName, value];
});
document.body.innerHTML += JSON.stringify(output,0,4);
您可以使用map()
和Object.keys()
var out = [{
1: {
name: 'Name 1',
id: 'one'
}
}, {
2: {
name: 'Name 2',
id: 'two'
}
}];
var res = out.map(function(v) {
var key = Object.keys(v)[0];
return [parseInt(key,10), v[key]];
})
document.write('<pre>' + JSON.stringify(res, null, 3) + '</pre>');
你忘了「1」和「2」應該是數字 – RomanPerekhrest
@RomanPerekhrest:更新 –
一個更加動態的數據結構的建議,沒有壓力的第一個關鍵
var out = [{ 1: { name: 'Name 1', id: 'one' } }, { 2: { name: 'Name 2', id: 'two' } }],
result = [];
out.forEach(function (a) {
Object.keys(a).forEach(function (k) {
result.push([+k, a[k]]);
});
});
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
你忘了「1」和「2」應該是數字 – RomanPerekhrest
滿足您的要求:([[1,object],[2,object]]
)"1"
和"2"
個鍵應該是數字:
var result = out.map(function(v){
var k = Object.keys(v)[0];
return [parseInt(k),v[k]];
});
console.log(JSON.stringify(result,0,4));
的的console.log輸出:
[
[
1,
{
"name": "Name 1",
"id": "one"
}
],
[
2,
{
"name": "Name 2",
"id": "two"
}
]
]
你已經忘記了 「1」 和 「2」 應該是數字 – RomanPerekhrest
@RomanPerekhrest感謝,所做的更改。 – gurvinder372