【发布时间】:2021-07-10 19:27:09
【问题描述】:
对 JS 相当陌生。我有一个 HTML 表格,其中的列按以下顺序排列:大陆、国家等... 到目前为止,我的工作代码可以读取 HTML 表格,为所有国家/地区创建一个数组,然后删除重复项。我还有一个数组,可以在 HTML 表中为国家数组的每个元素查找大陆。
我的问题是我似乎无法在大洲数组中查找某个值的所有索引(例如“非洲”)。这是我的代码:
//Step 1: create an array to hold each country's continent. The 'countries' array was
previously created.
var continents = [];
for (const element of countries){
console.log(element);
var contin = [];
for (j = 0 ; j < data.rows.length; j++){
if (data.rows[j].cells[1].innerHTML.indexOf(element) >= 0)
contin.push(data.rows[j].cells[0].innerHTML);
}
continents.push(contin);
}
//Step 2: Create a function that can look up all indexes in the continents array for a certain value.
function getAllIndexes(arr, val) {
var indexes = [], i;
for(i = 0; i < arr.length; i++)
if (arr[i] === val)
indexes.push(i);
return indexes;
}
//Step 3: Run the function to get all index values where continents array = "Africa"
indexesAfrica = getAllIndexes(continents, "Africa");
alert(indexesAfrica);
当我运行该函数时,它返回一个空白。我已经在其他数组上测试了该函数并且它可以工作。例如,此代码返回“1,3”的正确索引:
var funArr = ["test", "Africa", "Hello","Africa"];
indexesAfrica = getAllIndexes(funArr, "Africa");
alert(indexesAfrica);
这让我觉得我的大洲数组有问题?当我提醒(大陆)时,大陆数组显示正确的数组项列表,但我似乎无法在其中查找任何内容。想法?
【问题讨论】:
-
您需要给我们
continents数组数据。最好创建一个包含结果和/或任何错误的完整示例 -
分享这个最简单的方法?我的 HTML 表格很长
-
好的,所以我从控制台看到,与国家/地区数组相比,我的大洲数组中的数据看起来不同。在控制台中查看“国家”如下所示: 0:“阿尔及利亚”1:“安哥拉”2:“贝宁”3:“博茨瓦纳”4:“布基纳法索”5:“布隆迪”6:“喀麦隆”7:“开普敦” Verde”等...而“大陆”看起来像这样:0:(3)[“Africa”,“Africa”,“Africa”] 1:[“Africa”] 2:(3)[“Africa”,“非洲”、“非洲”] 3: (3) [“非洲”、“非洲”、“非洲”] 4: (2) [“非洲”、“非洲”] 5: [“非洲”] 6: (4 ) ["Africa", "Africa", "Africa", "Africa"] 7: ["Africa"] 等....
-
所以我想我明白发生了什么。我的大洲数组实际上是一个数组数组,而不是单个数组。将继续调查。
标签: javascript arrays indexing lookup