【问题标题】:JavaScript Inner-ArrayJavaScript 内部数组
【发布时间】:2014-04-27 00:55:07
【问题描述】:

在另一个数组中创建一个 JavaScript 数组是一种好习惯吗? 示例:我将创建一个数组“array1”,其中包含“array2”和“array3”的对象。

示例代码:

var array1 = [];
var array2 = []
array1.push(array2);

我问这个问题的原因是,对于多维数组,似乎很难得到所有维度的长度,但是,使用这个“内部数组”,你可以很容易地得到维度:

array1[0].length

【问题讨论】:

  • 定义“好”。这是可能的,当然也不会与 ECMAScript 的任何原则背道而驰。 :-)
  • 不是答案,只是评论:我认为这没有问题。我经常在 PHP 中使用 Arrays-within-Arrays,因为与尝试使用传统的多维数组相比,它是一种更合乎逻辑的访问嵌套数据的方式,最终我不得不在便利贴上画一个小图记住我所有数据的存储位置...
  • 看你的需要,没什么特别的。
  • 但是这种方法并不比多维数组更慢/有更多的缺点吗?
  • @JakeChasan 这一个多维数组。你还怎么定义一个?

标签: javascript arrays multidimensional-array


【解决方案1】:

请注意,通常称为“锯齿状数组”(array of arrays),它不一定表示矩形矩阵(通常是多维数组,每层具有相同数量的元素)。

JavaScript 不支持通常被认为是“多维数组”的东西,这与您可以执行 matrix = new int[10,20] 之类的其他一些语言不同。所以这是在 JavaScript 中创建“多维数组”的唯一方法。这篇How to initialize a jagged array in JavaScript? 的帖子可能会为您提供初始化数组的其他方式。

如果将它用于矩阵操作代码,在添加内部数组时要小心:通常代码会预期为矩形(如嵌套的for 循环),如果某些内部数组的维度错误,则可能会失败。

【讨论】:

    【解决方案2】:

    在另一个数组中创建一个 JavaScript 数组是一种好习惯吗?

    数组中包含的元素可以是任何东西,甚至是其他数组。所以这样做没什么不好。

    我问这个问题的原因是,对于一个多维数组, 然而,似乎很难得到所有维度的长度 “inner-array”,你可以很容易地得到尺寸

    您的“内部数组”实际上是一个多维数组。

    【讨论】:

    • @AlexeiLevenkov 感谢您的来信。我以前从未听说过“锯齿状数组”,但我喜欢将它与“多维数组”区分开来
    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 2015-05-14
    • 1970-01-01
    • 2021-08-22
    • 2020-09-25
    • 1970-01-01
    相关资源
    最近更新 更多