我在网上查找了一下,试图找到一种有效的方法来实现这个,但是却一无所获。我的一个对象数组长这样:
array[i].id = some number;
array[i].name = some name;
我想做的是找到id等于0、1、2、3或4中任意一个的对象的索引。
我想可以这样做:
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,正如它应该的那样。
Array.prototype.findIndex()
。不过,被接受的答案真的很棒。 - Conrad Lo