美文网首页
js数组的几个es5、es6方法介绍

js数组的几个es5、es6方法介绍

作者: Mr无愧于心 | 来源:发表于2018-06-12 15:03 被阅读0次

    ES5中数组的几个常用方法介绍

    1.forEach()

    从头至尾遍历数组,为每个元素调用指定函数

    var arr = [1,2,3,4,5];
    var obj={};
    arr.forEach(function(item,index,input){
      console.log(item,index,input)
      console.log(this)//this指向obj
    },obj);
    console.log(arr)
    

    forEach的实现原理,请戳我

    2.map()

    映射,从头至尾遍历数组,可操作每个元素,并返回新数组,不修改原数组

    var arr = [1,2,3,4,5];
    var obj={};
    let arr2=arr.map(function(item,index,input){
      console.log(this)//this指向obj
      return item+1;
    },obj);
    console.log(arr2)//产生一个操作后的新数组
    

    map的实现原理,请戳我

    3.filter()

    过滤,返回满足条件的元素组成的新数组

    a = [5,4,3,2,1];
    let a2 = a.filter(function(x){return x<3});
    console.log(a2)// =>[2,1]
    

    4.every()

    数组 所有元素满足条件就返回true,有一个不满足条件就返回false

    a = [5,4,3,2,1];
    let eve = a.every(function(x){return x<6});
    console.log(eve)//true
    let eve2 = a.every(function(x){return x<3});
    console.log(eve2)//false
    

    5.some()

    数组 所有元素只要有一个满足条件就返回true,都不满足条件就返回false

    a = [5,4,3,2,1];
    let sm= a.some(function(x){return x<2});
    console.log(sm)//true
    let sm2= a.some(function(x){return x>5});
    console.log(sm2)//false
    

    6.reduce()

    累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值

    a = [5,4,3,2,1];
    let red= a.reduce(function(x,y){
        console.log(x);// 5  9  12  14  15 
        return x + y;//每次的结算结果会当做下次运算的x继续执行
    });
    console.log(red)//15
    

    ES6中数组的几个常用方法介绍

    1.Array.from()

    将类数组,还有可遍历(iterable)的对象转为数组,NodeList、arguments、 ES6 新增的数据结构 Set 和 Map

    let arr2 = Array.from(likeArray);
    

    ps:类数组转数组的方法

    1.[].prototype.slice.call(likeArray,0);
    2.[...likeArray]
    3.for(var i=0;i=likeArray.length;i++){
        arr2.push(likeArray[i])
      }
    4.let arr2 = Array.from(likeArray);
    

    2.Array.of()

    将一组值,转换为数组。

    let arr2=Array.of(1,2,3)//[1,2,3]
    

    3.copyWithin()

    在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

    // 将3号位复制到0号位
    [1, 2, 3, 4, 5].copyWithin(0, 3, 4)
    // [4, 2, 3, 4, 5]
    

    4.find()

    找出 第一个 符合条件的数组成员。

    [1, 5, 10, 15].find(function(value, index, arr) {
      return value > 9;
    }) // 10
    

    5.fill()

    使用给定值,填充一个数组。

    ['a', 'b', 'c'].fill(7)
    // [7, 7, 7]
    

    第一个参数为待填充的值,第二和第三参数可选,分别表示填充的起始和结束位置(不包括)。

    ['a', 'b', 'c'].fill(7,1,2)
    //['a', 7, 'c']
    

    6.entries()、keys()、values()

    用于遍历数组,可以用for…of循环进行遍历。区别是keys()是对键名的遍历、values是对键值的遍历、entries()是对键值对的遍历。

    for (let index of ['a', 'b'].keys()) {
      console.log(index);
    }
    // =>0
    // =>1
    
    for (let elem of ['a', 'b'].values()) {
      console.log(elem);
    }
    // =>'a'
    // =>'b'
    for (let [index, elem] of ['a', 'b'].entries()) {
      console.log(index, elem);
    }
    

    7.includes()

    表示某个数组是否包含给定的值 ,返回布尔值

    [1, 2, 3].includes(2);     // true
    [1, 2, 3].includes(4);     // false
    [1, 2, NaN].includes(NaN); // true ,NaN用includes判断是和自身相等的
    

    8.拓展运算符 ...

    数组赋值

    let arr1=[1,2,3]
    let arr2=[4,5,6]
    let arr3=[...arr1,...arr2]//[1,2,3,4,5,6]
    
    

    相关文章

      网友评论

          本文标题:js数组的几个es5、es6方法介绍

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