有没有办法以更简洁的方式获取数组中的索引?

时间:2016-11-13 07:07:56

标签: javascript

好奇心只会赞助这个问题,因为它总是很有趣。

假设有一个数组保存某种对象。对象具有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++);

您怎么看?

1 个答案:

答案 0 :(得分:0)

与此同时,我发布了上述建议的jsperf。如果你愿意,请到处玩。

jsperf mentioned

最快的是我在FF下的初始示例,我的while循环在Chrome下的评论中发布。带有箭头功能的find解决方案在两种情况下都是最慢的。无法在IE中测试,因为我没有使用Win。

我知道这个jsperf编写得很糟糕 - 请一起玩。