美文网首页
数组的常用方法

数组的常用方法

作者: 凉城十月 | 来源:发表于2020-08-05 08:47 被阅读0次

    数组是用Array创建出来的并且__proto__指向Array.prototype的一种对象。

    1.forEach

    使用方法:
    arr.forEach(function(value, key){})
    实现:当直接传一个数组时。

    function forEach(array ,x ){
      for(let i =0 ;i<arrray.length ; i++){
        x(array[i], i)
      }    
    }
    

    当用this传数组时。

    arr.forEach = function(x){
      for(let i = 0;i < arr.length; i++){
        x(this[i], i)
      }
    }
    

    this=arr,默认this会传到方法中,不用写出来。

    2.sort

    在原数组上进行排序,采用原地排序,更节省空间,内置的排序一般快排

    var a = [2,3,1,5,4]
    a.sort(function(x,y){
      return x- y  //如果排序的顺序不对,就返回y-x
    })
    

    x表示左边那个数,y表示右边那个数。只有三种返回值: 正数,0,负数

    3.join

    默认用英文逗号分隔

    var a = [1,2,3]
    a.join('aa')  //"1aa2aa3"
    

    4.concat

    合并多个数组,返回一个新的数组。 一般用来复制一个数组

    var a =[1,2,3]
    var b = a.concat([]) //返回一个新的数组
    a === b //false
    

    5.map

    和forEach的效果一样,只不过有返回值。

    a.map(function(value ,key ){
    return value * 2
    })
    

    使用箭头函数表示:
    a.map(value => value*2)
    返回一个新的数组,a还是不变。

    6.filter

    返回一个新的数组,原数组不变。
    filter和map一起用=>链式操作

    a.filter(function(value ,key){
      return value % 2 ===0 //只剩偶数
    }).map(function(value ,key){
     return value *value //取剩下的偶数的平方
    })
    

    7.reduce

    reduce表示遍历数组,reduce是最强大的方法。
    a= [1,2,3,4,5,6]
    求和:

    a.reduce(function(sum, n ){ //两个变量,n表示操作值,这个值一直在变,sum表示要输出的数据
       return sum + n
    }, 0)  //方法后的值是sum的初始值
    
    • map可以用reduce表示:
    a.reduce(function(arr, n ){
      arr.push( n * 2)
      return arr
    }, [])
    
    • filter可以用reduce表示:
    a.reduce(function(arr, n ){
      if(n % 2 === 0){
        arr.push(n)
      }
      return arr
    }, [])
    

    相关文章

      网友评论

          本文标题:数组的常用方法

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