map.js 553 B

12345678910111213141516171819202122232425
  1. var each = require('./each')
  2. /**
  3. * 指定方法后的返回值组成的新数组
  4. *
  5. * @param {Object} obj 对象/数组
  6. * @param {Function} iterate(item, index, obj) 回调
  7. * @param {Object} context 上下文
  8. * @return {Array}
  9. */
  10. function map (obj, iterate, context) {
  11. var result = []
  12. if (obj && arguments.length > 1) {
  13. if (obj.map) {
  14. return obj.map(iterate, context)
  15. } else {
  16. each(obj, function () {
  17. result.push(iterate.apply(context, arguments))
  18. })
  19. }
  20. }
  21. return result
  22. }
  23. module.exports = map