Dis que j'ai ça
imageList = [100,200,300,400,500];
Ce qui me donne
[0]100 [1]200
etc.
Existe-t-il un moyen en JavaScript de renvoyer l'index avec la valeur?
C'est à dire. Je veux l'index pour 200 , je suis retourné 1 .
vous pouvez utiliser indexOf
:
var imageList = [100,200,300,400,500];
var index = imageList.indexOf(200); // 1
vous obtiendrez -1 s'il ne parvient pas à trouver une valeur dans le tableau.
Pour le tableau objects, 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 pris en charge par Chrome, FF, Safari et (Malheureusement seulement) IE Edge
Utilisez la fonction jQuery jQuery.inArray
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
Voici un autre moyen de rechercher un index de valeur dans un tableau complexe en javascript. En espérant 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 devons sélectionner un objet particulier dans le tableau. Supposons que nous voulions trouver un index d'étudiant nommé Tanmay.
Nous pouvons le faire en parcourant 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'index d'un élément particulier comme ci-dessous,
var index = functiontofindIndexByKeyValue(studentsArray, "name", "tanmay");
alert(index);
Utilisez indexOf
imageList.indexOf(200)
que diriez-vous de indexOf
?
alert(imageList.indexOf(200));
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);
Array.indexOf
ne fonctionne pas dans certaines versions d'Internet Explorer - il existe de nombreuses façons de le faire ... voir cette question/réponse: Comment puis-je vérifier si un tableau inclut un objet en JavaScript?
Il est possible d'utiliser une fonction ES6
Array.prototype.findIndex
.
MDN dit :
La méthode
findIndex()
renvoie l'index de le 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 à ceci:
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
Remarque: : includes est une méthode d'instance simple sur le tableau et permet de rechercher facilement si un élément figure dans le tableau (y compris NaN contrairement à indexOf).
Voici mon point de vue, il semble que la plupart des gens ne résolvent pas la question si l'élément existe et supprime les valeurs aléatoires s'il n'existe pas.
Commencez par vérifier si l'élément existe par recherche de son index . S'il existe, supprimez-le par son index à l'aide de la méthode splice
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}