我一直在网上冲浪,试图找到一种有效的方法来做到这一点,但是却一无所获。我有一个看起来像这样的对象数组:
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);
例如,可能会返回未定义。提前致谢!
Array.prototype.findIndex()
,ECMAScript 2015中都有一个新的数组方法。公认的答案非常好。