zoukankan      html  css  js  c++  java
  • ES5中的数组方法

    forEach方法

    var person = [

      {

         "name" : "张三",

          "sex" :  0 ,

          "age" : 18

        },

      {

         "name" : "李四",

          "sex" :  0 ,

          "age" : 20

        },

      {

         "name" : "王五",

          "sex" :  1 ,

          "age" : 19

        },

    ]

    <ul>

        <li></li>

        <li></li>

        <li></li>

        <li></li>

    </ul>

    forEach(callback,[obj])

    callback中5接收了三个参数  运行几次决定于arr的length

    obj j决定了callback中的this指向

    person.forEach(function(ele,index,self){

    console.log(ele,index,self,this)

    })

    person.forEach(function(ele,index,self){

    console.log(ele,index,self,this)

    this[index].innerHTML = ele.name;

    },document.getElementsByTagName("li"))

    自定义封装数组方法:

    Array.prototype.myForEach = function(fun){

    var _arr = this;

    var len = _arr.length;

    var param2 = arguments[1] || window;

    for(var i = 0;i < len;i++){

    // fun.call(param2,_arr[i],i,_arr)

    fun.apply(param2,[_arr[i],i,_arr])

    }

    }

    personArr.myForEach(function(ele,index,self){

    console.log(ele,index,self,this)

    this[index].innerHTML = ele.name;

    },document.getElementsByTagName("li"))

    filter方法  过滤

    person.filter(callback,object)

    返回一个新的数组,callback返回值如果为true,就会在新数组中,false,就不存在

    var  newArr = person.filter(function(ele,index,self,this){

        console.log(ele,index,self,this);

         return true;

         if(ele.sex == 0){

           return true ;

            else{

          return false;

         }

          return ele.sex ==1;

         },{

          name : "hh"

        })

    自定义封装方法

    Array.prototype.myFilter = function(fun){

    var _arr = this;

    var len = _arr.length;

    var param2 = arguments[1] || window;

    var newArr = [];

    for(var i = 0;i < len;i++){

    fun.apply(param2,[_arr[i],i,_arr]) ? newArr.push(_arr[i]) : "";

    }

    return newArr;


    var newArr = personArr.myFilter(function(ele,index,self){

    return ele.sex == 0;

    },{

    name : "hh"

    })

    console.log(newArr);

    map方法  映射

    map返回一个新的数组

    var  newArr = person.map(function(ele,index,self){

      console.log(ele,index,self,this)

      return 10;

      return ele.name + 10;

      ele.name += 10;

      return ele

      },{

      name : "hh"

       })

         console.log(newArr);

    自定义封装数组方法:

    Array.prototype.myMap = function(fun){

    var _arr = this;

    var len = _arr.length;

    var param2 = arguments[1] || window;

    var newArr = [];

    for(var i = 0;i < len;i++){

    newArr.push( fun.apply(param2,[_arr[i],i,_arr]) ); //深克隆加进去

    }

    return newArr;

    }

    var newArr = personArr.myMap(function(ele,index,self){

    ele.name += 10;

    return ele

    },{

    name : "hh"

    })

    console.log(newArr)

    every方法 :

    返回一个boolean

    var flag = personArr.every(function(ele,index,self){

    console.log(ele,index,self,this);

     return false;

    return ele.age > 15;

     }, {

     name : "psh"

    })

     console.log(flag)

    自定义封装数组方法:

    Array.prototype.myEvery = function(fun){

    var _arr = this;

    var len = _arr.length;

    var param2 = arguments[1] || window;

    var flag = true;

    for(var i = 0;i < len;i++){

    if(!fun.apply(param2,[_arr[i],i,_arr])){

    flag = false;

    break;

    }

    }

    return flag;

    }

    var flag = personArr.myEvery(function(ele,index,self){

    console.log(ele,index,self,this);

    return ele.age > 10;

    }, {

    name : "psh"

    })

    console.log(flag)

        

  • 相关阅读:
    Oracle不常用SQL
    C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点
    Oracle常见错误:ORA-06550、ORA-00911、ORA-02085
    IIS设置允许跨域
    npm和yarn 切换为国内镜像(淘宝镜像)
    Wordpress 所有 hook 钩子
    【C#】WPF多线程登录需求中报错 “调用线程无法访问对象,因为另一个线程拥有该对象“
    【C#】 WPF 中WebBrowser拖动来移动窗口,改变窗口位置
    【Java】Hibernate一级缓存测试分析
    javac编译单文件、多文件引入jar包、-cp解决无法加载主类问题
  • 原文地址:https://www.cnblogs.com/hyh888/p/11820592.html
Copyright © 2011-2022 走看看