我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