1

我想使用 javascript 或 jquery 将数组数组转换为键值对数组。

我有数组数组,如:

var arrOfarr = [[1,'One'],[2,'Two'],[3,'Three']];

我如何将 arrOfarr 转换为看起来像的键值对数组

[{id:1,text:'One'},{id:2,text:'Two'},{id:3,text:'Three'}]
4

6 回答 6

6
var result = [];
for (var i = 0, iLength = arrOfarr.length; i < iLength; i++) {
    result.push({ id: arrOfarr[i][0], text: arrOfarr[i][1] });
}

console.log(result);
于 2013-07-25T11:41:33.103 回答
2
var arrOfarr = [[1,'One'],[2,'Two'],[3,'Three']];
var hash = new Array(arrOfarr.length);
for (var x = 0; x < hash.length; x++) {
    hash[x] = {id: arrOfarr[x][0], text: arrOfarr[x][1]};   
}

如果您有一个大数组或很多数组,这可能会帮助您提高性能,因为它会提前分配数组的大小。

于 2013-07-25T11:45:29.210 回答
2

你可以使用$.map()

arrOfarr = jQuery.map(arrOfarr, function(val){
    return {id: val[0], text: val[1]}
})

演示:小提琴

于 2013-07-25T11:41:10.370 回答
1
var result = [];
for(var i = 0; i < arrOfarr.length; i++){
    var ar = arrOfarr[i];
    result.push({ id: ar[0], text: ar[1] });
}
于 2013-07-25T11:42:01.537 回答
1

你可以;

var arr = [[1,'One'],[2,'Two'],[3,'Three']];

var o = []
for (var i = 0; i < arr.length; i++)
{
    o.push({id: arr[i][0], text: arr[i][1]});
}
于 2013-07-25T11:42:13.687 回答
1

尝试这个,

a=[[1,'one'],[2,'two'],[3,'three']];
$.each(a,function(id,value){
a[id]={id:value[0],text:value[1]};
});

现在 a 将拥有您想要的三个对象。

于 2013-07-25T12:43:02.793 回答