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)

        

  • 相关阅读:
    【bzoj1499】[NOI2005]瑰丽华尔兹 【单调队列优化dp】
    【poj3709】K-Anonymous Sequence 【斜率优化dp】
    【bzoj4566】[Haoi2016]找相同字符【后缀自动机】
    【Play】蜂鸣器音乐 校歌
    【poj2373】Dividing the Path【单调队列优化dp】
    【bzoj2010】SubString【后缀自动机+LCT】
    【bzoj1047】[HA蛤OI2007]理想的正方形【单调队列】
    【poj1743】Musical Theme【后缀数组】
    【bzoj4293】[PA2015]Siano【线段树】
    【bzoj4553】[Tjoi2016&Heoi2016]序列【树套树 树状数组套平衡树】
  • 原文地址:https://www.cnblogs.com/hyh888/p/11820592.html
Copyright © 2011-2022 走看看