2011-04-18 70 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