Eventuali duplicati:
indexOf method in an object array?problemi con l'uso indexOf su una serie complessa
Ho un array JavaScript che segue questo 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"}
];
Esiste un modo che Posso usare array.indexOf per trovare un indice nella matrice, quando ad esempio conosco la variabile "id".
Ad esempio, ho provato;
var position = arrayName.indexOf("b");
arrayName[position].gender = "man"
Al momento sto usando;
for(var i=0; i<arrayName.length; i++) {
if(arrayName[i].id == "b"){
arrayName[i].gender = "man";
}
}
Questa seconda tecnica funziona, ma la matrice reale che sto usando dispone di 150 voci e 10 elementi in ogni voce in modo loop attraverso di essa tutto sembra molto dispendioso quando so che il "id" della voce Voglio modificare. indexOf sarebbe un approccio molto più pulito se riuscirò a farlo funzionare.
Chiamare indexOf su un array non è compatibile con browser. – erturne
@erturne - hai ragione - non è nemmeno in IE8 - wow –
@erturne: non lo è, ma [come dichiarato su Mozilla Developer Network] (https://developer.mozilla.org/en/JavaScript/Reference/ Global_Objects/Array/indexOf), può essere facilmente implementato anche in browser obsoleti/deprecati. – Tadeck