我想创建一个宽度不同的二维数组。我已经初始化了外部数组,因为我知道行数。
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);