Javascript:可变宽度的多维数组



我想创建一个宽度不同的二维数组。我已经初始化了外部数组,因为我知道行数。

var listofcities = new Array(lengthofcites); //i get this lengthofcitles from another routine

现在,我将从另一个例程中获取城市中的设施列表作为列表。 例如listoffacilities = ["water","air"]一个城市。对于另一个城市,我将获得此列表作为listoffacilities = ["water","air","electricity"].

我应该能够将其存储在我的外部数组中,

以便
listofcities[0] = ["water","air"]
listofcities[1] = ["water","air","electricity"]

我无法像listofcities[0].push(listoffacilities)在内部循环中使用推送功能。

我从网络上看到的所有示例都有相同大小的行/列。

JavaScript 没有多维数组;它有数组数组。因此,多维数组本质上是交错的(当并非所有从属数组都具有相同长度时的名称(。

你从字面上做,就像你展示的那样:

var listofcities = []; // No need to pre-allocate length
listofcities[0] = ["water","air"];
listofcities[1] = ["water","air","electricity"];
console.log(listofcities);
.as-console-wrapper {
max-height: 100% !important;
}

这:

var listofcities = [];

创建一个空的外部数组,然后执行以下操作:

listofcities[0] = ["water","air"];
listofcities[1] = ["water","air","electricity"];

创建从属数组(例如,["water","air"](并将它们存储在该外部数组中。[...]是一个数组初始值设定项(通常称为"数组文本"(,用于创建一个数组,其中项位于括号之间。

下面是一个使用push的示例;请注意,您在数组 (listofcities.push(...)( 上调用push,而不是该数组中的条目(listofcities[0].push(...)(。但是,一旦您将从属数组作为条目放入,您就可以push该从属数组(listofcities[0].push(...)(。

var listofcities = []; // No need to pre-allocate length
listofcities.push(["water","air"]);
listofcities.push(["water","air","electricity"]);
console.log(listofcities);
.as-console-wrapper {
max-height: 100% !important;
}

你不应该推到listofcities的特定元素上,只需推到数组本身:

var listofcities = []; // don't specify the length here
listoffacilities = ["water", "air"];
listofcities.push(listoffacilities);
listoffacilities = ["water","air","electricity"];
listofcities.push(listoffacilities);
console.log(listofcities);

相关内容

  • 没有找到相关文章

最新更新