目前我在做
var adnetCustomerModel = customersList.find((adnetCustomerModel) => {
return adnetCustomerModel.getId() == customerId;
})
但浪费CPU周期,因为我必须继续并遍历整个列表(或者我假设发生了这种情况)。
我想在第一次找到时退出。 现在我知道我可以做一个filter()。first()(我认为它会浪费相同的CPU周期)但是有更好的方法吗?
如果这是一个正常的for
循环,我会打破......
返回会在immutable.js中实现相同的效果吗?
tx用于阅读,
肖恩
答案 0 :(得分:1)
Immutable的find()
已经只返回谓词返回true的第一个值。它实际上只是包含了这样实现的findEntry()
方法:
findEntry(predicate, context, notSetValue) {
var found = notSetValue;
this.__iterate((v, k, c) => {
if (predicate.call(context, v, k, c)) {
found = [k, v];
return false;
}
});
return found;
}
所以,你不会浪费任何周期。 :)
Vanilla JavaScript Array.prototype.find()
还返回与谓词匹配的第一个元素的值。