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

2022-08-30 00:53:28

说我有这个

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

这给了我

[0]100 [1]200等。

在 JavaScript 中,有没有办法返回带有该值的索引?

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


答案 1

您可以使用 indexOf

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

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


答案 2

对于对象数组,请使用 :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支持