在javascript中使用键值生成多维数组

时间:2015-11-04 15:35:07

标签: javascript arrays brackets

我有一个来自json的数组:

String day = "26";
String month = "03";
String year = "1989";

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

{"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;
}

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

3 个答案:

答案 0 :(得分:2)

您在数组中添加了数组。

只需更改

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

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

答案 1 :(得分:1)

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

删除此

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

直接执行此操作

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

答案 2 :(得分:1)

您可以对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);