说我有这个
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)