Tôi đã lướt xung quanh một chút để cố gắng tìm ra một cách hiệu quả để làm điều này, nhưng không đi đến đâu. Tôi có một loạt các đối tượng trông như thế này:
array[i].id = some number;
array[i].name = some name;
Những gì tôi muốn làm là tìm INDEXES của các đối tượng có id bằng, ví dụ, một trong 0,1,2,3 hoặc 4. Tôi cho rằng tôi có thể làm một cái gì đó như:
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 }
}
Trong khi điều này sẽ hoạt động, nó có vẻ khá tốn kém và chậm (chưa kể xấu xí), đặc biệt là nếu mảng.length có thể lớn. Bất cứ ý tưởng về làm thế nào để làm cho điều này lên một chút? Tôi đã nghĩ đến việc sử dụng Array.indexOf bằng cách nào đó nhưng tôi không thấy cách buộc cú pháp. Điều này
array.indexOf(this.id === 0);
ví dụ, trả về không xác định, vì nó có thể nên. Cảm ơn trước!
Array.prototype.findIndex()
trong ECMAScript 2015. Câu trả lời được chấp nhận là tuyệt vời tho.