Javascript多维数组问题

标签 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], [], []]

我需要做的就是使另一个数组成为全局数组的一部分(简单,像 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]);
    }
}

如果我这样做,我会收到一个未定义的错误,即 global.offset 不是一个对象(但它已经初始化并且内部有四个数组。

我是 JS 新手。

谢谢

最佳答案

正如 IPX Ares 所说:在循环之外声明你的数组。还要确保在访问“global.offset[i]”的“[j]”成员之前实例化“global.offset[i]”。

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]);
    }
}

关于Javascript多维数组问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263749/

相关文章:

javascript - 使用 Flask 从 python 脚本定期更新 HTML 中的数据

javascript - jquery ajax发送数据并获取: SQLSTATE[HY093]: Invalid parameter number

javascript - 如何加载 JSON 数据以与 select2 插件一起使用

javascript 使用带循环的 settimeout()

c++ - 将多维 std::vector 排序为单个 vector

javascript - 根据值过滤对象数组

javascript - 如何复制标签内容?

javascript - 在本地存储中保存并返回随机生成的字符串

php - 将 reCaptcha ajax api 实现到已使用 ajax 的现有 Web 表单

c# - 如何使用 C# 中的矢量化计算 double 矩阵的总和?