Javascript 下划线Js--\u0.some()与\u0.find()的比较
从我在文档中读到的内容来看,u.find()函数与u.some()非常相似Javascript 下划线Js--\u0.some()与\u0.find()的比较,javascript,underscore.js,Javascript,Underscore.js,从我在文档中读到的内容来看,u.find()函数与u.some()非常相似 有人知道这两者之间是否有(性能)优势吗?假设您想知道是使用还是在特定情况下,它们的性能特征可能是相同的。他们两人都以同样的方式懒惰 区别在于输出find将返回值,some将返回一个boolean 我检查了来源(1.4.4)一些和查找都在内部使用一些(==任何)。因此,即使使用了some的本机实现,如果您查看它的源代码,就会发现这两个实现是相同的,find实际上调用了一些 _.find = _.detect = func
有人知道这两者之间是否有(性能)优势吗?假设您想知道是使用还是在特定情况下,它们的性能特征可能是相同的。他们两人都以同样的方式懒惰 区别在于输出
find
将返回值,some
将返回一个boolean
我检查了来源(1.4.4)<代码>一些和
查找
都在内部使用一些
(==任何
)。因此,即使使用了some
的本机实现,如果您查看它的源代码,就会发现这两个实现是相同的,find实际上调用了一些
_.find = _.detect = function(obj, iterator, context) {
var result;
any(obj, function(value, index, list) {
if (iterator.call(context, value, index, list)) {
result = value;
return true;
}
});
return result;
};
var any = _.some = _.any = function(obj, iterator, context) {
iterator || (iterator = _.identity);
var result = false;
if (obj == null) return result;
if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
each(obj, function(value, index, list) {
if (result || (result = iterator.call(context, value, index, list))) return breaker;
});
return !!result;
};
另一个细微的区别是
一些
将使用本机实现(如果可用),我不确定查找