好奇心只会赞助这个问题,因为它总是很有趣。
假设有一个数组保存某种对象。对象具有id属性。 Id不能为空字符串,false,null或任何falsey值。数组的长度可以为零。我想获得该值的索引(如果存在)并在找到后立即退出循环。
var id = /some value to check/;
var index;
for (var i = 0, item; item = arr[i],
item===undefined?false:item.id==id?(index=i,false):true; i++);
您怎么看?
答案 0 :(得分:0)
与此同时,我发布了上述建议的jsperf。如果你愿意,请到处玩。
最快的是我在FF下的初始示例,我的while
循环在Chrome下的评论中发布。带有箭头功能的find
解决方案在两种情况下都是最慢的。无法在IE中测试,因为我没有使用Win。
我知道这个jsperf编写得很糟糕 - 请一起玩。