美文网首页
forEach和map遍历

forEach和map遍历

作者: 依依田 | 来源:发表于2018-08-15 11:50 被阅读0次

    一、原生JS forEach()和map()遍历

    共同点:

    1.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。
    

    2.匿名函数中的this都是指Window。

    3.只能遍历数组。

    1).forEach()没有返回值。map()有返回值可接收return 出来的新数组
    2)问题:不管是forEach还是map在IE6-8下都不兼容

    /**

    • forEach遍历数组
    • @param callback [function] 回调函数;
    • @param context [object] 上下文;
      */
      Array.prototype.myForEach = function myForEach(callback,context){
      context = context || window;
      if('forEach' in Array.prototye) {
      this.forEach(callback,context);
      return;
      }
      //IE6-8下自己编写回调函数执行的逻辑
      for(var i = 0,len = this.length; i < len;i++) {
      callback && callback.call(context,this[i],i,this);
      }
      //------------------------------------------//

    /**

    • map遍历数组
    • @param callback [function] 回调函数;
    • @param context [object] 上下文;
      */
      Array.prototype.myMap = function myMap(callback,context){
      context = context || window;
      if('map' in Array.prototye) {
      return this.map(callback,context);
      }
      //IE6-8下自己编写回调函数执行的逻辑
      var newAry = [];
      for(var i = 0,len = this.length; i < len;i++) {
      if(typeof callback === 'function') {
      var val = callback.call(context,this[i],i,this);
      newAry[newAry.length] = val;
      }
      }
      return newAry;
      }

    二、jQuery .each()和.map()遍历
    1).each()里面的匿名函数支持2个参数:当前项的索引i,数组中的当前项n。如果遍历的是对象,k 是键,n 是值。 2).map()有返回值,可以return 出来。.map()里面的匿名函数支持2个参数和.each()里的参数位置相反:数组中的当前项n,当前项的索引i。如果遍历的是对象,i 是值,n 是键。如果是(.each() $("span").each()一样

    相关文章

      网友评论

          本文标题:forEach和map遍历

          本文链接:https://www.haomeiwen.com/subject/hsnibftx.html