我有一个二维数组,格式如下:
[["a",1], ["b",2]]
我想将其格式更改为:
{"a":1,"b":2}
我该怎么做?对不起,如果这是一个简单/愚蠢的问题。
答案 0 :(得分: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
循环可以用于此有点像。
答案 1 :(得分:2)
var arr = [["a",1], ["b",2]], obj = {}, i;
for (i = 0; i < arr.length; i++) {
obj[arr[i][0]] = arr[i][1];
}
答案 2 :(得分:2)
这很简单:
var myList = {};
for( var i in myArray ) {
myList[myArray[i][0]] = myArray[i][1];
}
答案 3 :(得分:2)
var result = {};
$.each([["a",1], ["b", 2]], function(){result[this[0]] = this[1]})
答案 4 :(得分:2)
您可以遍历多维数组,将内部数组的第一个索引指定为属性,将第二个索引指定为值。
var arr = [["a",1], ["b",2]];
var obj = {};
for(var i = 0; i < arr.length; i++){
obj[arr[i][0]] = arr[i][1];
}
答案 5 :(得分:1)
假设密钥不会出现两次:
var o = {};
[["a",1], ["b",2]].forEach(function(value) {o[value[0]] = value[1];});