método indexOf em uma matriz de objetos?
Qual'é o melhor método para obter o índice de um array que contém objetos?
Imagina este cenário:
var hello = {
hello: 'world',
foo: 'bar'
};
var qaz = {
hello: 'stevie',
foo: 'baz'
}
var myArray = [];
myArray.push(hello,qaz);
Agora eu gostaria de ter o indexOf
o objeto cuja propriedade hello
é 'stevie'
que, neste exemplo, seria 1
.
I'sou bastante novato com JavaScript e eu não'não sei se existe um método simples ou se eu deveria construir minha própria função para fazer isso.
467
3
Array.prototype.findIndex é suportado em todos os navegadores que não o IE (non-edge). Mas o polyfill fornecido é bom.
A solução com o mapa está bem. Mas você está iterando sobre toda a matriz a cada busca. Esse é apenas o pior caso para findIndex que pára de iterar uma vez que uma correspondência é encontrada.
There's not really a concise way **(when devs had to worry about IE8)**, but here's a common solution:
ou como uma função:
Só algumas notas:
Por exemplo,
Veja este exemplo: http://jsfiddle.net/89C54/
Começa a contar com zero.