2011-04-18 73 views
0

我在JavaScript數組一些值如圖構建二維陣列動態

var sampledata = {10,20,30,40};// these values would come from database later 

我想創建與這些值的二維陣列。

我想創建一個數組作爲

var newData = [[0,10],[1,20],[2,30],[3,40]] 
+0

示例數據語法無效。另外,我不明白你想達到什麼目的。 – Felipe 2011-04-18 17:35:32

+0

你的意思是'var sampledata = [10,20,30,40];' – Chandu 2011-04-18 17:39:35

回答

3

如果的sampleData是一個數組

var sampledata = [10,20,30,40] 
var newData = [] 
jQuery.each(sampledata,function(i,data){newData.push([i,data])}) 
+0

謝謝Naren Sisodiya,我試過了(var i = 0li Kiran 2011-04-18 17:54:53

+0

@Kiran - 使用'sampledata [i]'你現在有'data'的地方。請參閱我的答案以獲取完整示例。 – 2011-04-18 17:56:07

+0

看看lwburk對普通javascript的迴應,我用過jQuery – 2011-04-18 17:59:17

4

純JavaScript:

var newData = []; 
var sampledata = [10,20,30,40]; 
for (var i = 0; i < sampledata.length; i++) { 
    newData.push([i, sampledata[i]]); 
} 

使用高階函數:

var newData = sampledata.map(function(el, i) { 
    return [i, el]; 
}) 
+0

你的JQuery例子需要返回'[[i,el]]'或者它會添加兩個項目而不是兩個項目的嵌套數組。 – 2011-04-18 18:03:06

+0

@Yanick - 我沒有jQuery示例。如果你談論的是使用'map'的例子,那麼,不,它不應該返回'[[i,el]]'。賦給'map'的函數應該返回'newData'的元素,它們是一維數組。 – 2011-04-18 18:13:45

+0

我的錯誤。我不知道爲什麼,但是當我在jsfiddle.net上第一次嘗試時,我得到了'[0,10,1,20,2,30,...]'。我不能重現這一點,所以我認爲它一定是我的錯,或者別的什麼...... – 2011-04-18 19:25:18