indexOf-Methode in einem Objekt-Array?
Was ist die beste Methode, um den Index eines Arrays zu ermitteln, das Objekte enthält?
Stellen Sie sich folgendes Szenario vor:
var hello = {
hello: 'world',
foo: 'bar'
};
var qaz = {
hello: 'stevie',
foo: 'baz'
}
var myArray = [];
myArray.push(hello,qaz);
Nun möchte ich den indexOf
des Objekts haben, dessen hello
Eigenschaft 'stevie'
ist, was in diesem Beispiel 1
wäre.
Ich bin ein ziemlicher Neuling in JavaScript und ich weiß nicht, ob es eine einfache Methode gibt oder ob ich eine eigene Funktion dafür entwickeln sollte.
467
3
Array.prototype.findIndex wird in allen Browsern außer dem IE (non-edge) unterstützt. Aber die polyfill vorgesehen ist nett.
Die Lösung mit map ist in Ordnung. Aber Sie iterieren bei jeder Suche über das gesamte Array. Das ist nur der schlimmste Fall für findIndex, der die Iteration stoppt, sobald eine Übereinstimmung gefunden wurde.
There's nicht wirklich einen prägnanten Weg **(wenn devs hatte über IE8 zu kümmern)**, aber hier's eine gemeinsame Lösung:
oder als Funktion:
Nur einige Anmerkungen:
Zum Beispiel,
Siehe dieses Beispiel: http://jsfiddle.net/89C54/
Die Zählung beginnt bei Null.