Javascript – Obtenez la position de l'élément du tableau

Par exemple, une variable nommée arrayElements of array type contient [1,2,3,4].

Comment puis-je obtenir la position de laquelle a la valeur "3" dans la variable de tableau en plus d'utiliser la boucle?

Merci.

indexOf utiliser indexOf , il renvoie la position 0-based de l'élément dans le tableau.

par exemple

 [1,2,3,4].indexOf(3); // produces 2 

Notez que cette méthode n'est pas disponible dans IE 8 et ci-dessous.

JQuery vous fournit une fonctionnalité "inArray", similaire à PHP:

 var a = [1,2,3,4]; console.log( jQuery.inArray(3, a) ); //returns 2 

Si vous utilisez déjà jQuery dans votre projet, ce serait le chemin à parcourir! JQuery utilise indexOf (la solution la plus rapide) si possible et passe de nouveau à une solution basée sur la boucle sinon.

Ou utilisez simplement une boucle for:

 function getPosition(elementToFind, arrayElements) { var i; for (i = 0; i < arrayElements.length; i += 1) { if (arrayElements[i] === elementToFind) { return i; } } return null; //not found } getPosition(3, [1, 2, 3, 4]); 

Comme cela a déjà été souligné par certaines réponses, les tableaux dans les navigateurs plus récents ont des méthodes comme indexOf map et pour forEach qui est très pratique pour éviter d'écrire beaucoup de for-loops.

Si vous devez prendre en charge les anciens environnements sans ces fonctions, je vous recommande vivement d' utiliser une bibliothèque (ou d'écrire l'une de vos propres) pour implémenter ces opérations de réseau très courantes (type de soc suggéré).

 var arrayfn = (function(){ var M = {}; M.indexOf = function(array, item){ ... }; M.contains = function(array, item){ return M.indefOf(array, item) !== -1; }; M.map = function(array, callback){ ... }; }()); arrayfn.contains([1,2,3], 2); 

Les cadres JS les plus populaires devraient déjà avoir la plupart de ces bases de toute façon. Sur le dessus de ma tête, je me souviens de Dojo, jQuery et Underscore ont certaines de ces fonctions, par exemple.