生成键值为 javascript 的多维数组

Generate multi dimensional array with key value in javascript

我有一个来自 json 的数组,如下所示:

{"1001":"Account1","1002":"Account2","1003":"Account3"}

我需要将其转换为键值格式:

[{id:"1001",name:"Account1"},
{id:"1002",name:"Account2"},
{id:"1003",name:"Account3"}]

为此我编写了这个函数:

function arrayToMultiArray(list) {
    var matrix = [], i;
    i = -1;
    for (var key in list) {
        i++;
        matrix[i] = [];
        matrix[i].push({"id":key, "name":list[key]});
    }
    return matrix;
}

但是生成的数组每个数组都有括号

[[{id:"1001",name:"Account1"}],
[{id:"1002",name:"Account2"}],
[{id:"1003",name:"Account3"}]]

如何删除内部数组的括号?

您在数组中添加了数组。

改变一下

i++;
matrix[i] = [];
matrix[i].push({"id":key, "name":list[key]});

matrix.push({"id":key, "name":list[key]});

您正在创建一个多维数组。

删除这个

 i++;
 matrix[i] = [];

然后直接这样做

matrix.push({"id":key, "name":list[key]});

您可以对 Object.keysArray.prototype.map

执行相同的操作

var obj = {"1001":"Account1","1002":"Account2","1003":"Account3"};
var arr = Object.keys(obj).map(function(key) {
  return { id : key, name : obj[key] }
});

console.log(arr);