Javascript多维数组问题
以下是global.heights数组的示例:Javascript多维数组问题,javascript,ajax,multidimensional-array,Javascript,Ajax,Multidimensional Array,以下是global.heights数组的示例: [[190, 76, 209, 57, 114, 171, 76, 513, 209, 171, 76, 152, 76, 76, 190, 114, 95, 76, 76, 95, 57, 133, 114], [152, 76, 133, 38, 95, 133, 76, 342, 190, 114, 57, 152, 76, 57, 133, 76, 76, 76, 57, 76, 57, 76, 76], [], []] 我需要做的是使另
[[190, 76, 209, 57, 114, 171, 76, 513, 209, 171, 76, 152, 76, 76, 190, 114, 95, 76, 76, 95, 57, 133, 114], [152, 76, 133, 38, 95, 133, 76, 342, 190, 114, 57, 152, 76, 57, 133, 76, 76, 76, 57, 76, 57, 76, 76], [], []]
我需要做的是使另一个数组成为全局数组的一部分(很简单,像global.offset=new array()这样的东西可以正常工作)。
它需要看起来像这样:
[[190, 266, 475, ...], [...], [], []]
基本上每个地方都是目前为止的价值。与global.offset[2]一样,它是整个数组中添加的前三个,依此类推
但如果我尝试以下方法:
for(i = 0, e < global.heights.length; i < e; i++) {
for(j = 0, k < global.heights[1].length; j < k; j++) {
global.offset[i][j] = Number(global.offset[i][j - 1]) + Number(global.heights[i][j]);
}
}
for(i=0,e
如果我这样做,我会得到一个未定义的错误,即global.offset不是一个对象(但它已经初始化,并且里面有四个数组)
我是JS的新手
谢谢这看起来不对:
for(j = 0, k < global.heights[1].length; j < k; j++) {
global.offset[i][j] = Number(global.offset[i][j - 1]) + Number(global.heights[i][j]);
}
for(j=0,k
你是说k=global.heights[i].length
(注意=和1替换为i)
此外,除非将字符串放入数组中,否则不需要使用Number()
也就是说,在不知道全局数组的定义位置的情况下,我无法提供更多帮助。因此,问题是您在循环外部定义了数组。在尝试设置偏移数组之前,请将其定义为数组 本页更好地解释了我的意思:
正如IPX Ares所说:在循环外声明数组。在访问“global.offset[i]”的“[j]”成员之前,还要确保“global.offset[i]”已实例化
global.offset=global.offset | |【】///你在哪里定义了global.offset?我刚才看到的是global.heights到那一点。不管怎样,我看到了它现在的位置。
global.offset = global.offset || []; // <- See this!
for(i = 0, e < global.heights.length; i < e; i++) {
for(j = 0, k = global.heights[1].length; j < k; j++) { // I think you mean "k = global.heights[1].length"?
global.offset[i] = global.offset[i] || []; // <- and this!
global.offset[i][j] = Number(global.offset[i][j - 1]) + Number(global.heights[i][j]);
}
}