Comment trouver l'index de tableau avec une valeur?
Dire que j'ai eu ce
imageList = [100,200,300,400,500];
qui me donne
[0]100 [1]200
etc.
y a-t-il un moyen en JavaScript de retourner l'index avec la valeur?
i. e. Je veux l'index de 200 , je suis retourné 1 .
11 réponses
pour objects array utiliser 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 part de l'ES6 et , soutenu par Chrome, FF, Safari et (Malheureusement uniquement) IE bord
utiliser la fonction de jQuery jQuery.inArray
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
Voici une autre façon de trouver l'index des valeurs dans le tableau complexe en javascript. L'espoir d'aider quelqu'un, en effet. Supposons que nous ayons un tableau JavaScript comme suit,
var studentsArray =
[
{
"rollnumber": 1,
"name": "dj",
"subject": "physics"
},
{
"rollnumber": 2,
"name": "tanmay",
"subject": "biology"
},
{
"rollnumber": 3,
"name": "amit",
"subject": "chemistry"
},
];
Maintenant, si nous avons une obligation de sélectionner un objet dans le tableau. Supposons que nous voulons trouver l'indice de l'étudiant avec le nom Tanmay.
nous pouvons le faire en itérant à travers le tableau et en comparant la valeur à la clé donnée.
function functiontofindIndexByKeyValue(arraytosearch, key, valuetosearch) {
for (var i = 0; i < arraytosearch.length; i++) {
if (arraytosearch[i][key] == valuetosearch) {
return i;
}
}
return null;
}
Vous pouvez utiliser la fonction pour trouver l'indice d'un élément particulier comme ci-dessous,
var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay");
alert(index);
Array.indexOf
ne fonctionne pas dans certaines versions d'internet explorer - il y a beaucoup d'autres façons de le faire bien ... voir cette question / réponse : Comment puis-je vérifier si un tableau inclut un objet en JavaScript?
quand les listes ne sont pas très longues, c'est la meilleure façon que je connaisse:
function getIndex(val) {
for (var i = 0; i < imageList.length; i++) {
if (imageList[i] === val) {
return i;
}
}
}
var imageList = [100, 200, 300, 400, 500];
var index = getIndex(200);
il est possible d'utiliser une ES6
fonction Array.prototype.findIndex
.
MDN dit :
la méthode
findIndex()
renvoie l'index de le premier élément dans le tableau qui satisfait la fonction de test fournie. Sinon -1 est retourné.
var fooArray = [5, 10, 15, 20, 25];
console.log(fooArray.findIndex(num=> { return num > 5; }));
// expected output: 1
trouver un index par bien d'objet.
pour trouver un index par bien d'objet:
yourArray.findIndex(obj => obj['propertyName'] === yourValue)
par exemple, il y a un tel tableau:
let someArray = [
{ property: 'OutDate' },
{ property: 'BeginDate'},
{ property: 'CarNumber' },
{ property: 'FirstName'}
];
puis, le code pour trouver un index de la propriété nécessaire ressemble à cela:
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
prendre Note : Comprend la fonction est une simple méthode d'instance sur le tableau et permet de trouver facilement si un élément est dans le tableau(y compris NaN contrairement à indexOf)
Voici mon point de vue sur elle, semble comme la plupart des gens solutions ne vérifient pas si l'élément existe et il supprime les valeurs aléatoires si elle n'existe pas.
vérifier D'abord si l'élément existe par chercher son index . S'il existe, supprimez-le par son index en utilisant la splice method
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}