javascript - 如何动态创建具有负索引的多维数组?

标签 javascript multidimensional-array

在 Javascript 中,我有一个行数和列数可变的矩阵,我希望将其存储在一个多维数组中。

问题是我还需要在矩阵中添加额外的 3 列和 3 行带有 negative 索引。因此 10x10 矩阵的结果应该是一个 13x13 数组,索引从 -3 到 9。

我定义数组:

  var numberofcolumns = 10;
  var numberofrows = 10;
  var matrix = [];
  for (var x = -3; x < numberofcolumns; x++) {
    matrix[x] = [];
  }

这样做正确吗?或者有更好的方法吗?

最佳答案

虽然您可以创建负数的属性,但是您失去了一些 Javascript 的伪数组魔法。特别是,matrix.length 仍然是 10,即使它有 13 个元素。总体而言,代码可能会让任何阅读它的人感到惊讶。

您最好定义一个偏移量以从数组索引中获取所需的值,反之亦然:

var offset = 3
for (var x=-3; x<numberofcolumns; x++) {
   matrix[x+offset] = []
}

关于javascript - 如何动态创建具有负索引的多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12887401/

相关文章:

javascript - 如何在 typescript 中使用javascript模块

javascript - 如何重置 QUnit 中的状态?

python - 如何强制 scipy.optimize.fmin_l_bfgs_b 使用 'dtype=float32'

c++ - 遍历多维数组时遇到问题

php - 如何从多维数组中删除重复的值?

c - 二维数组是双指针吗?

javascript - HTML5 本地存储 Angular 2

javascript - jQuery 的 SlideUp 函数对我来说不能正常工作

javascript - Javascript 中算术表达式的安全评估

php - 使用多维数组调用 array_diff_assoc() 时为 "Array to string conversion error"