尝试获取JavaScript中数组中值的索引

时间:2019-04-01 08:47:20

标签: javascript arrays

我有三个数组,其中一个在自动完成下拉列表中。选择一个项目后,我想在数组中找到它的索引,以便可以在其他两个数组中使用该索引。

有没有简单的解决方案,可以向数组函数提供值(例如Texas)并获取其索引号?

谢谢

3 个答案:

答案 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的回调可能会返回该项目及其索引。这取决于您用于自动完成的软件包。

使用回调函数会更好,因为您无需再次迭代数组以找到所选项目的索引。