我有三个数组,其中一个在自动完成下拉列表中。选择一个项目后,我想在数组中找到它的索引,以便可以在其他两个数组中使用该索引。
有没有简单的解决方案,可以向数组函数提供值(例如Texas)并获取其索引号?
谢谢
答案 0 :(得分:1)
只需使用array.indexOf()
方法。
通过将搜索字符串(或任何搜索项)作为参数,它将返回该项在数组中的索引。
P.S: 请记住,数组索引从0
开始,以array length-1
结尾。
//and you're getting the selected value
function GetSelectedItem(el) {
var e = document.getElementById(el);
var city = e.options[e.selectedIndex].text;
var cities = ["Paris", "Adelaide", "Texas", "London", "New York"];
var city_index = cities.indexOf(city);
console.log(city_index);
}
<!--If you have a dropdown list that looks something like:-->
<select id="cityList">
<option value="Bengaluru">Bengaluru</option>
<option value="Dallas" selected="selected">Dallas</option>
<option value="Texas">Texas</option>
</select>
<button onClick="GetSelectedItem('cityList');">Get Selected Item</button>
答案 1 :(得分:0)
MDN page for the prototype of the object是解决这类问题的一个很好的起点。
查看方法列表,看看是否有什么听起来很有希望。
在这种情况下:indexOf
const places = [ "Victoria", "Texas", "Berkshire" ];
console.log( places.indexOf("Texas") );
答案 2 :(得分:0)
您可以调用数组的方法indexOf:
['Florida', 'California', 'Texas'].indexOf('Texas') // => 2
但是,如果您谈论的是自动完成功能,则调用item select的回调可能会返回该项目及其索引。这取决于您用于自动完成的软件包。
使用回调函数会更好,因为您无需再次迭代数组以找到所选项目的索引。