Qua*_*Van 7 javascript underscore.js
Underscore.js有findLast()方法还是等价?
什么是最好的方法,.find()但返回在Collection中匹配的最后一项?
Aad*_*hah 11
反转列表然后使用find:
_.find(list.reverse(), iterator);
Run Code Online (Sandbox Code Playgroud)
阅读MDN以获取文档reverse.
不幸的是,下划线中的集合可以是数组或对象.如果你的收藏是一个阵列,那么你很幸运.你可以用reverse.但是,如果它是一个对象,那么你需要这样做:
_.find(Object.keys(list).reverse(), function (key) {
return iterator(list[key], key, list);
});
Run Code Online (Sandbox Code Playgroud)
你可以findLast为自己编写一个函数:
_.mixin({
findLast: function (list, iterator, context) {
if (list instanceof Array)
return _.find(list.slice(0).reverse(), iterator, context);
else return _.find(Object.keys(list).reverse(), function (key) {
return iterator.call(context, list[key], key, list);
});
}
});
Run Code Online (Sandbox Code Playgroud)
现在您可以findLast像任何其他下划线方法一样使用.
| 归档时间: |
|
| 查看次数: |
7671 次 |
| 最近记录: |