1. // forEach
    2. Array.prototype.forEach = function(cb){
    3. var _arr = this
    4. var _len = _arr.length
    5. var _arg2 = arguments[1] || window
    6. for(let i = 0 ; i < _len ; i++){
    7. cb.apply(_arg2,[_arr[i],i,_arr])
    8. }
    9. }
    10. // map
    11. Array.prototype.map = function(cb){
    12. var _arr = this
    13. var _len = _arr.length
    14. var _arg2 = arguments[1] || window
    15. var _newArr = []
    16. var _item
    17. var res
    18. for(let i = 0 ; i < _len ; i++){
    19. _item = deepClone(_arr[i]) // 深拷贝
    20. res = cb.apply(_arg2,[_item,i,_arr])
    21. if(res){
    22. _newArr.push(res)
    23. }
    24. }
    25. return _newArr
    26. }
    27. // filter
    28. Array.prototype.filter = function(cb){
    29. var _arr = this
    30. var _len = _arr.length
    31. var _arg2 = arguments[1] || window
    32. var _newArr = []
    33. var _item
    34. for(let i = 0 ; i < _len ; i++){
    35. _item = deepClone(_arr[i]) // 深拷贝
    36. cb.apply(_arg2,[_item,i,_arr]) ? _newArr.push(item) : ''
    37. }
    38. return _newArr
    39. }