findLast.js 579 B

12345678910111213141516171819202122232425
  1. var isArray = require('./isArray')
  2. var values = require('./values')
  3. /**
  4. * 从右至左遍历,匹配最近的一条数据
  5. *
  6. * @param {Object} obj 对象/数组
  7. * @param {Function} iterate(item, index, obj) 回调
  8. * @param {Object} context 上下文
  9. * @return {Object}
  10. */
  11. function findLast (obj, iterate, context) {
  12. if (obj) {
  13. if (!isArray(obj)) {
  14. obj = values(obj)
  15. }
  16. for (var len = obj.length - 1; len >= 0; len--) {
  17. if (iterate.call(context, obj[len], len, obj)) {
  18. return obj[len]
  19. }
  20. }
  21. }
  22. }
  23. module.exports = findLast