对js来说相当陌生。我有一个html表格,列的顺序是:大陆,国家,等等。。。到目前为止,我已经有了工作代码,可以读取html表,为所有国家创建一个数组,然后删除重复项。我还有一个数组,它在html表中为countries数组的每个元素查找大陆。
我的问题是,我似乎无法查找大陆数组中的所有索引以获得某个值(例如“非洲”)。这是我的密码:
//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);
这让我觉得我的大陆阵列有问题?当我发出警报(大陆)时,大陆阵列显示正确的阵列项目列表,但我似乎无法在其中查找任何内容。思想?
1条答案
按热度按时间cotxawn71#
我本打算把这作为一个评论,但它似乎可以解决你的情况,也许可以帮助你学到一些东西。为什么将它们作为两个独立的阵列?它的伸缩性不是很好。如果你对你的国家阵列进行排序,你将失去与欧洲大陆的联系。最好将它们耦合在一组对象中,这样很容易过滤(比如,如果您只想显示非洲的国家)。
更新:要添加lat和long,可以点击map()中的索引