如何find一个值的数组索引?

说我有这个

imageList = [100,200,300,400,500]; 

这给了我

[0]100 [1]200

有没有什么方法在JavaScript中返回索引的值?

即我想索引200 ,我得到回报1

你可以使用indexOf

 var imageList = [100,200,300,400,500]; var index = imageList.indexOf(200); // 1 

如果无法在数组中find值,您将得到-1。

对于使用indexOf 对象数组使用map

 var imageList = [ {value: 100}, {value: 200}, {value: 300}, {value: 400}, {value: 500} ]; var index = imageList.map(function (img) { return img.value; }).indexOf(200); console.log(index); 

使用jQuery的函数jQuery.inArray

 jQuery.inArray( value, array [, fromIndex ] ) (or) $.inArray( value, array [, fromIndex ] ) 

这里是另一种方式在javascript中查找复杂数组中的值索引。 希望能帮助某个人。 让我们假设我们有一个JavaScript数组如下,

 var studentsArray = [ { "rollnumber": 1, "name": "dj", "subject": "physics" }, { "rollnumber": 2, "name": "tanmay", "subject": "biology" }, { "rollnumber": 3, "name": "amit", "subject": "chemistry" }, ]; 

现在,如果我们有要求select数组中的特定对象。 让我们假设我们想要find名字为Tanmay的学生索引。

我们可以通过遍历数组并比较给定键的值来做到这一点。

 function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) { for (var i = 0; i < arraytosearch.length; i++) { if (arraytosearch[i][key] == valuetosearch) { return i; } } return null; } 

您可以使用该函数来查找特定元素的索引,如下所示,

 var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay"); alert(index); 

使用indexOf

 imageList.indexOf(200) 

indexOf怎么样?

 alert(imageList.indexOf(200)); 

Array.indexOf不工作在一些版本的Internet Explorer中 – 有很多替代方法做到这一点虽然…看到这个问题/答案︰ 如何检查如果一个数组包含JavaScript中的对象?

当名单不是很长时,这是我知道的最好的方法:

 function getIndex(val) { for (var i = 0; i < imageList.length; i++) { if (imageList[i] === val) { return i; } } } var imageList = [100, 200, 300, 400, 500]; var index = getIndex(200);