美文网首页
数组函数相关

数组函数相关

作者: 苹果咏 | 来源:发表于2019-02-25 11:21 被阅读0次

    JS不一致性

    Array(3)表示的是长度length


    image.png

    Array(3,3)又不是length了,表示数组中两项数据


    image.png
    所以Array()大于一项的都是表示数组当中的数


    函数的几种定义方法

    function S(a,b){
        return a+b
    }
    S(1,2)//3 具名函数
    
    var f = function (a,b){
        return a+b
    }
    f(1,2)//3 匿名函数
    
    var r = new Function ('a', 'b', 'return a+b')
    r(1,2)//3
    
    var r = Function ('a', 'b', 'return a+b')
    r(1,2)//3 不加new也是可以的
    


    forEach()

    var array1 = ['a', 'b', 'c'];
    
    array1.forEach(function(element) {
      console.log(element);
    });
    //a
    //b
    //c
    
    
    var array1 = ['a', 'b', 'c'];
    array1.forEach(function(a,b) {
      console.log(b+":"+a);
    });
    //0:a
    //1:b
    //2:c
    

    sort()

    var a=[6,5,7,8,8,3,5,4,5,6,7]
    undefined
    a.sort()
    //(11) [3, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8]
    
    a.sort( function(x,y){return x-y} )
    //(11) [3, 4, 5, 5, 5, 6, 6, 7, 7, 8, 8]
    
    a.sort( function(x,y){return y-x} )
    //(11) [8, 8, 7, 7, 6, 6, 5, 5, 5, 4, 3]
    

    join()

    var a=[1,2,3]
    a.join('7')
    //"17273"
    /*a(3) […]
    ​0: 1
    1: 2
    2: 3​
    length: 3
    <prototype>: Array []*/
    //join是在每一项中间都加入这个数,而且不改变原数组
    

    concat()

    var b=[45,4,24,65,3]
    a.concat(b)
    //Array(8) [ 1, 2, 3, 45, 4, 24, 65, 3 ]
    //concat为合并
    

    map()

    遍历,类似于forEach

    a.map(function(value, key){return value*2})
    //Array(3) [ 2, 4, 6 ]
    
    //使用箭头函数
    a.map(value => value*10)
    //Array(3) [ 10, 20, 30 ]
    //map可以return,forEach是不能return的
    

    filter()

    过滤

    a.filter(function(value,key){return value>1})
    //Array [ 2, 3 ],过滤,只剩下大于1的
    
    a.filter(function(value,key){return value%2===0})
    //Array [ 2 ],除以2的余数等于0
    
    a.filter(function(value,key){return value%2===0}).map(function(value){return value*value})
    //Array [ 4 ],map和filter同时
    

    reduce()

    reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。

    a.reduce(function(sum,n){return sum+n},0)
    // 6,后面这个0是sum的初始值
    
    a.reduce((sum,n)=> sum+n ,0)
    
    a.reduce(function(arr1,n)
    {
      if(n%2===0){
          arr1.push(n)
      }
      return arr1
    },[])
    //Array [ 2 ],reduce表示filter,reduce可以实现上面所有
    

    相关文章

      网友评论

          本文标题:数组函数相关

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