说我有这个
imageList = [100,200,300,400,500];
这给了我
[0]100 [1]200
等等。
JavaScript 中有什么方法可以返回带有值的索引吗?
即我想要200的索引,我得到返回1。
说我有这个
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
如果在数组中找不到值,您将得到 -1。
对于对象阵列使用map
与indexOf
:
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);
在现代浏览器中,您可以使用findIndex
:
var imageList = [
{value: 100},
{value: 200},
{value: 300},
{value: 400},
{value: 500}
];
var index = imageList.findIndex(img => img.value === 200);
console.log(index);
它是 ES6 的一部分,被Chrome、FF、Safari 和 Edge 支持
使用 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"
},
];
现在,如果我们需要在数组中选择一个特定的对象。让我们假设我们要查找名为 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)