私はこれを行うための効率的な方法を見つけるために少しサーフィンをしてきましたが、どこにも行きませんでした。次のようなオブジェクトの配列があります。
array[i].id = some number;
array[i].name = some name;
私がやりたいのは、idがたとえば0、1、2、3、または4のいずれかに等しいオブジェクトのINDEXESを見つけることです。次のようなことができると思います。
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 }
}
これは機能しますが、特にarray.lengthが大きくなる可能性がある場合は、非常に高価で低速に見えます(醜いことは言うまでもありません)。これを少し整える方法について何かアイデアはありますか?どういうわけかarray.indexOfを使用することを考えましたが、構文を強制する方法がわかりません。これ
array.indexOf(this.id === 0);
たとえば、おそらく必要なように、undefinedを返します。