$.inArray
唯一针对特定值的测试(检查相等性)因此在这种情况下对您没有帮助。
您可以将 inArray 更改为能够处理谓词,因为它是第一个参数。像这样更改“基础库”应该小心完成,您可能想要创建一个不同的函数。然而,在这种特定情况下,我觉得传递函数的能力类似于其他 jQuery 函数
var org_inArray = $.inArray
$.inArray = function(value, array, fromIndex){
if($.isFunction(value)){
var start = fromIndex || 0,
matches = $.grep(myArray.slice(start), function(e,i) {
if(value(e,i)) return i;
}
return matches ? matches[0] : -1;
} else {
arguments.length > 2 ?
org_inArray.call($,value,array,fromIndex) :
org_inArray.call($,value,array)
}
}
然后你就可以像使用它一样
if($.inArray( function(e) { return e[2] > 5;}, myArray) !== -1){
}