如何找到具有值的数组索引?

IT技术 javascript arrays indexof
2021-01-17 08:35:17

说我有这个

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

这给了我

[0]100 [1]200 等等。

JavaScript 中有什么方法可以返回带有值的索引吗?

即我想要200的索引,我得到返回1

6个回答

您可以使用indexOf

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

如果在数组中找不到值,您将得到 -1。

刚刚发现它在 IE8 中不起作用。我的选择是什么?
2021-03-16 08:35:17
你可以使用developer.mozilla.org/en/JavaScript/Reference/Global_Objects/...或任何 Javascript 框架来解决这个问题。
2021-03-25 08:35:17
@voigtan 如何将它添加到我的 JS 中?
2021-03-29 08:35:17
我已经搞定了,谢谢。IE总有一天会赶上现代!
2021-04-10 08:35:17
如果在兼容模式下也不能在最近的 IE 中工作
2021-04-10 08:35:17

对于对象阵列使用mapindexOf

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 支持

请注意,在 IE 11 中未实现 findIndex
2021-03-24 08:35:17
@Bindrid 它写在答案中,请参阅“它是 ES6 的一部分,由 Chrome、FF、Safari 和(不幸的是仅)IE 边缘支持”
2021-04-01 08:35:17

使用 jQuery 的函数 jQuery.inArray

jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
打算使用标记为正确答案的代码,但似乎该代码不适用于所有版本的 IE。此答案适用于所有版本的 IE,但我稍微更改了代码: var arrayPosition = $.inArray( value, Array ); 完美运行
2021-03-14 08:35:17
jQuery ≠ Javascript
2021-03-20 08:35:17

这是在 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)