如何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);