Duplicar posible:
indexOf method in an object array?problemas para usar indexOf en un complejo conjunto
que tienen una matriz de JavaScript que sigue este formato:
var arrayName = [
{id: "a", gender: "man", item: "stuff"},
{id: "b", gender: "woman", item: "stuff"},
{id: "c", gender: "man", item: "stuff"},
{id: "d", gender: "man", item: "stuff"}
];
¿Hay alguna manera de que Puedo usar array.indexOf para encontrar un índice en la matriz, cuando, por ejemplo, conozco la variable "id".
Por ejemplo, lo intenté;
var position = arrayName.indexOf("b");
arrayName[position].gender = "man"
Por el momento estoy usando;
for(var i=0; i<arrayName.length; i++) {
if(arrayName[i].id == "b"){
arrayName[i].gender = "man";
}
}
Esta segunda obra técnica, pero la matriz real que estoy usando tiene 150 entradas y 10 artículos en cada entrada de modo de bucle a través de él todo parece un gran desperdicio cuando sé que el "id" de la entrada quiero editar. indexOf sería un enfoque mucho más limpio si puedo hacerlo funcionar.
Llamar indexOf en una matriz no es compatible con varios navegadores. – erturne
@erturne - tienes razón - ni siquiera está en IE8 - wow –
@erturne: No lo es, pero [como se indica en Mozilla Developer Network] (https://developer.mozilla.org/es/JavaScript/Reference/ Global_Objects/Array/indexOf), se puede implementar fácilmente incluso en navegadores antiguos/en desuso. – Tadeck