Por ejemplo, una variable llamada arrayElements of array type contiene [1,2,3,4].Javascript - Obtener posición del elemento de la matriz
¿Cómo obtengo la posición de que tiene el valor "3" en la variable de matriz además de usar loop?
gracias.
Por ejemplo, una variable llamada arrayElements of array type contiene [1,2,3,4].Javascript - Obtener posición del elemento de la matriz
¿Cómo obtengo la posición de que tiene el valor "3" en la variable de matriz además de usar loop?
gracias.
considere usar indexOf
, devuelve la posición 0 del elemento en la matriz.
p. Ej.
[1,2,3,4].indexOf(3); // produces 2
Tenga en cuenta que este método no está disponible en IE 8 y versiones posteriores.
O sencillo utilizar un bucle:
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]);
jQuery proporciona yout con una funcionalidad "InArray", similar a PHP:
var a = [1,2,3,4];
console.log(jQuery.inArray(3, a)); //returns 2
Si ya está usando jQuery en su proyecto, este sería el camino a seguir! jQuery usa indexOf (la solución más rápida) si es posible y los pasos atrás a una solución basada en bucle si no es así.
Como ya fue señalado por algunas respuestas, las matrices en los nuevos navegadores tienen métodos como indexOf
map
y forEach
que son muy conveniente para evitar que escriben un montón de fines de bucles.
Si necesita admitir entornos antiguos sin estas funciones, recomendaría utilizando una biblioteca (o escribiendo una propia) para implementar esas operaciones de matriz muy comunes (tipo de cómo sugirió soc).
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);
Los frameworks JS más populares ya deberían tener la mayoría de estos incorporados de todos modos. Por encima de mi cabeza, recuerdo que Dojo, jQuery y Underscore tienen algunas de estas funciones, por ejemplo.
Si la matriz era [1, 2, 3, 4, 3], ¿cómo obtendría la posición de ambos 3 en dos variables diferentes? – CPC
Como referencia, puede usar el método Array.reduce para devolver una matriz que contenga la posición de varios elementos. El siguiente código devuelve una matriz de posición [2,4] - la posición de ambos 3s. var array = [1, 2, 3, 4, 3] .reduce (function (array, n, i) {if (n === 3) array.push (i); return array;}, []); – RepeatQuotations