Bunu yapmak için etkili bir yol bulmaya çalışırken biraz sörf yapıyorum, ama hiçbir yere ulaşmadım. Ben böyle görünüyor nesneleri bir dizi var:
array[i].id = some number;
array[i].name = some name;
Ne yapmak istiyorum id, örneğin 0,1,2,3 veya 4'e eşit olduğu nesnelerin INDEXES bulmaktır. Ben sadece gibi bir şey yapabilirim varsayalım:
var indexes = [];
for(i=0; i<array.length; i++) {
(array[i].id === 0) ? { indexes[0] = i }
(array[i].id === 1) ? { indexes[1] = i }
(array[i].id === 2) ? { indexes[2] = i }
(array[i].id === 3) ? { indexes[3] = i }
(array[i].id === 4) ? { indexes[4] = i }
}
Bu işe yarar olsa da, özellikle array.length büyük olabilirse, oldukça pahalı ve yavaş (çirkin bahsetmiyorum) gibi görünüyor. Bunu biraz ladinlemek hakkında bir fikrin var mı? Ben bir şekilde array.indexOf kullanmayı düşündüm ama sentaks zorlamak nasıl görmüyorum. Bu
array.indexOf(this.id === 0);
örneğin, muhtemelen olması gerektiği gibi tanımsız döndürür. Şimdiden teşekkürler!
Array.prototype.findIndex()
ECMAScript 2015'te yeni bir dizi yöntemi var . Kabul edilen cevap harika oldu.