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 que je veux l'index pour 200 , je suis retourné 1 .
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 que je veux l'index pour 200 , je suis retourné 1 .
Réponses:
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.
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 prise en charge par Chrome, FF, Safari et Edge
Utilisez la fonction jQuery.inArray de jQuery
jQuery.inArray( value, array [, fromIndex ] )
(or) $.inArray( value, array [, fromIndex ] )
Voici une autre façon de trouver un indice de valeur dans un tableau complexe en javascript. J'espère vraiment aider quelqu'un. 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 besoin de sélectionner un objet particulier dans le tableau. Supposons que nous voulons trouver l'index des étudiants avec le nom 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);
Array.indexOf
ne fonctionne pas dans certaines versions d'Internet Explorer - il existe cependant de nombreuses autres façons de le faire ... voir cette question / réponse: Comment puis-je vérifier si un tableau comprend un objet en JavaScript?
Il est possible d'utiliser une ES6
fonctionArray.prototype.findIndex
.
MDN dit :
La
findIndex()
méthode 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
Recherchez un index par propriété d'objet.
Pour rechercher 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 des propriétés nécessaires ressemble à ceci:
let carIndex = someArray.findIndex( filterCarObj=>
filterCarObj['property'] === 'CarNumber');
Voici mon point de vue, il semble que la plupart des solutions ne vérifient pas si l'élément existe et qu'il supprime les valeurs aléatoires s'il n'existe pas.
Vérifiez d'abord si l'élément existe en recherchant son index . S'il existe, supprimez-le par son index à l'aide de la méthode d' épissage
elementPosition = array.indexOf(value);
if(elementPosition != -1) {
array.splice(elementPosition, 1);
}
Tableau de référence:
var array = [
{ ID: '100', },
{ ID: '200', },
{ ID: '300', },
{ ID: '400', },
{ ID: '500', }
];
Utilisation de filter
et indexOf
:
var in_array = array.filter(function(item) {
return item.ID == '200' // look for the item where ID is equal to value
});
var index = array.indexOf(in_array[0]);
Faire une boucle sur chaque élément du tableau à l'aide de indexOf
:
for (var i = 0; i < array.length; i++) {
var item= array[i];
if (item.ID == '200') {
var index = array.indexOf(item);
}
}
// Instead Of
var index = arr.indexOf(200)
// Use
var index = arr.includes(200);
Veuillez noter : la fonction comprend 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)