2011-04-12 41 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