我需要与Under
score的
find基本相同的
功能,但是使用元素的索引作为结果(而不是元素本身).
据我所知,Underscore的indexOf寻找一个值并且不起作用.与jQuery的inArray功能相同的问题.
我想出了以下实现,但我不确定它是最有效的:
@H_
403_6@function myIndexOf(arr,filter) {
var index;
$.each(arr,function (i,elt) { if (filter(elt)) { index=i; return false; } });
return index;
}
这是一个简单的实现:
@H_
403_6@function find(collection,filter) {
for (var i = 0; i < collection.length; i++) {
if(filter(collection[i],i,collection)) return i;
}
return -1;
}
它将适用于具有length属性的任何可索引对象,您可以传递一个过滤器(element,index,collection)(可选参数)的复杂过滤器函数.
原文链接:https://www.f2er.com/jquery/153923.html