0

我有一个二维数组,其格式如下:

[["a",1], ["b",2]]

我想将其格式更改为:

{"a":1,"b":2}

我怎样才能做到这一点?对不起,如果这是一个简单/愚蠢的问题。

4

6 回答 6

3

我会假设你确定同一个键不会出现两次(即,不会有两个内部数组"a"):

var inputArray = [["a",1], ["b",2]],
    outputObject = {},
    i;

for (i = 0; i < inputArray.length; i++)
    outputObject[inputArray[i][0]] = inputArray[i][1];

如果这对您来说还不够 jQuery,那么我想您可以使用$.each()而不是for循环等,但在我看来,简单的for循环对于这类事情是很好的。

于 2013-03-24T21:40:03.363 回答
2
var arr = [["a",1], ["b",2]], obj = {}, i;

for (i = 0; i < arr.length; i++) {
    obj[arr[i][0]] = arr[i][1];
}
于 2013-03-24T21:40:04.620 回答
2

这很容易:

var myList = {};
for( var i in myArray ) {
    myList[myArray[i][0]] = myArray[i][1];
}
于 2013-03-24T21:40:19.307 回答
2
var result = {};
$.each([["a",1], ["b", 2]], function(){result[this[0]] = this[1]})
于 2013-03-24T21:40:47.690 回答
2

您可以遍历多维数组,将内部数组的第一个索引指定为属性,将第二个索引指定为值。

var arr = [["a",1], ["b",2]];
var obj = {};

for(var i = 0; i < arr.length; i++){
  obj[arr[i][0]] = arr[i][1];
}

工作示例 http://jsfiddle.net/4Pmzx/

于 2013-03-24T21:40:55.697 回答
1

假设密钥不会出现两次:

var o = {};
[["a",1], ["b",2]].forEach(function(value) {o[value[0]] = value[1];});
于 2013-03-24T21:41:08.447 回答