2011-04-12 17 views
0

下面我有一个数组,数组转换问题

var array = { 
    "Id":[1,2,3], 
    "Name":["one","two","five"], 
    "row":[8,9,7] 
} 

,但我想把它改造成

var array2 = 
{"data": 
    [ 
    {"Id":1,"Name":"one","Row:8"}, 
    {"Id":2,"Name":"two","Row:9"}, 
    {"Id":3,"Name":"five","Row:7"}, 
    ] 
} 

这可能吗?

+1

这不是一个数组。 – 2011-04-12 14:18:11

回答

2

这应做到:

// make sure the new object is initialized 
var array2 = { data: [] }; 
// Count the number of items in array.Id and start iterating 
for (var i=0,t=array.Id.length; i < t; i++) { 
    // Note that array.Id = [1,2,3] does not result in corresponding keys 
    // array.Id[0] corresponds to value 1! 
    array2.data.push({ 
     Id: array.Id[i], 
     Name: array.Name[i], 
     Row: array.Row[i] 
    }); 
} 
1
var array2 = {data: []}; 
for (i in array.Id) { 
    array2.data.push({ 
     Id: array.Id[i], 
     Name: array.Name[i], 
     row: array.row[i] 
    }); 
} 

没有测试

+0

我认为你的索引是在错误的地方:array [i] – MacAnthony 2011-04-12 14:11:58

+0

nm - 我没有正确读取OP代码 – MacAnthony 2011-04-12 14:13:43

+0

不,它不是。 array [i]在这里没有意义 – Emmerman 2011-04-12 14:14:13

0

它不是一个数组。这是一个对象。

var myArr = [1,2,3]; //Array definition 


var myObj = {test:"1",test2:"2"}; //Object Definition 



var array = [1,[1,2,3]]; // multidimensional array 
+0

但实际上object也是一个多维数组呢? – tobias 2011-04-12 14:14:34

+0

不,他们不是。我已经添加了多维数组示例。数组与对象不同。 – Headshota 2011-04-12 14:17:37

+0

Javascript中的数组是特定类型的对象,具有自动递增键的数字。你使用的是对象,但不是数组。 – 2011-04-12 14:18:53