index - javascript recherche dans un tableau




Comment trouver l'index de tableau avec une valeur? (7)

Il est possible d'utiliser une fonction Array.prototype.findIndex .

findIndex :

La méthode findIndex() renvoie l'index du premier élément du tableau qui satisfait à la fonction de test fournie. Sinon, -1 est renvoyé.

var fooArray = [5, 10, 15, 20, 25];
console.log(fooArray.findIndex(num=> { return num > 5; }));

// expected output: 1

Trouver un index par propriété d'objet.

Pour trouver un index par propriété d'objet:

yourArray.findIndex(obj => obj['propertyName'] === yourValue)

Par exemple, il existe un tel tableau:

let someArray = [
    { property: 'OutDate' },
    { property: 'BeginDate'},
    { property: 'CarNumber' },
    { property: 'FirstName'}
];

Ensuite, le code pour trouver un index de la propriété nécessaire ressemble à ça:

let carIndex = someArray.findIndex( filterCarObj=> 
    filterCarObj['property'] === 'CarNumber');

Dire que j'ai ça

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

Ce qui me donne

[0]100 [1]200 etc.

Est-il possible en JavaScript de retourner l'index avec la valeur?

C'est à dire que je veux l'index pour 200 , je suis retourné 1 .


Pour le tableau d'objets, utilisez map avec 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);

Dans les navigateurs modernes, vous pouvez utiliser findIndex :

var imageList = [
   {value: 100},
   {value: 200},
   {value: 300},
   {value: 400},
   {value: 500}
];

var index = imageList.findIndex(img => img.value === 200);

console.log(index);

Sa partie de ES6 et soutenu par Chrome, FF, Safari et (malheureusement seulement) bord IE


Utiliser indexOf

imageList.indexOf(200)

Utilisez la fonction de jQuery jQuery.inArray

jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )

que diriez-vous d' indexOf ?

alert(imageList.indexOf(200));

vous pouvez utiliser indexOf :

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

vous obtiendrez -1 s'il ne trouve pas de valeur dans le tableau.


// Instead Of 
var index = arr.indexOf(200)

// Use 
var index = arr.includes(200);

Veuillez noter : La fonction Includes est une méthode d'instance simple sur le tableau et aide à trouver facilement si un élément est dans le tableau (y compris NaN contrairement à indexOf)





indexof