Bir nesne dizisinde indexOf yöntemi?
Nesneler içeren bir dizinin indeksini almak için en iyi yöntem nedir?
Bu senaryoyu hayal edin:
var hello = {
hello: 'world',
foo: 'bar'
};
var qaz = {
hello: 'stevie',
foo: 'baz'
}
var myArray = [];
myArray.push(hello,qaz);
Şimdi hello
özelliği 'stevie'
olan nesnenin indexOf
değerine sahip olmak istiyorum ki bu örnekte bu değer 1
olacaktır.
JavaScript konusunda oldukça acemiyim ve basit bir yöntem var mı yoksa bunu yapmak için kendi işlevimi mi oluşturmalıyım bilmiyorum.
467
3
Array.prototype.findIndex IE (edge olmayan) dışındaki tüm tarayıcılarda desteklenir. Ancak sağlanan polyfill güzel.
Harita ile çözüm tamamdır. Ancak her aramada tüm dizi üzerinde yineleme yapıyorsunuz. Bu yalnızca bir eşleşme bulunduğunda yinelemeyi durduran findIndex için en kötü durumdur.
Gerçekten kısa ve öz bir yol yok **(geliştiriciler IE8 hakkında endişelenmek zorunda kaldıklarında)**, ancak burada'yaygın bir çözüm var:
veya bir fonksiyon olarak:
Sadece bazı notlar:
Örneğin,
Bu örneğe bakın: http://jsfiddle.net/89C54/
Sıfır ile saymaya başlar.