美文网首页
js数组--一些常见API

js数组--一些常见API

作者: CeaCrab | 来源:发表于2018-03-12 16:00 被阅读0次
    1. Array.forEach(function(x,y){}) 接收一个函数,函数不传参数,没有返回值,也就是undefined
    //可以给数组传一个函数,这个函数必须接收两个参数
    前边是value,后边是key。
    var a = [0:'c',1:'d']; 
    a.forEach = function(x){
        for(let i=0; i<a.length; i++){
            x(this[i],i)
        }
    }
    //a.forEach是遍历数组a,数组a根本没有传入,怎么遍历呢?
    因为this的原因,其实点前的数组a已经传入了,多以能a.forEach.
    a.forEach( function(value,key){
      console.log(value,key)
    })
    // c 0
    // d 1
    
    1. Array.sort(function(x,y){}) 排序数组(比较特殊:不会生成新数组,改变了原数组)
      .sort必须接收一个函数,函数必须接收两个参数
    // 数组排序:我们知道最快的是通排序,因为桶排序有弊端,需要很多桶,js不知道需要多少桶,一般都会用快速排序。
    a  = [ 5,6,8,4,2] 
    a.sort()  //默认排序
    a
    //[2,4,5,6,8]  
    //浏览器不知道我们需要升序还是降序排序,所以需要告诉浏览器方向,需要用一个函数,函数必须接收两个参数。参数作对比,前边小就是升序,前边大就是降序。
    a.sort( function(x,y){ // x是2,y是4,x-y是负数,这样是升序
      return x-y  //升序
    })
    //[2,4,6,8]
    a.sort(function(x,y){ // x是2,y是4,y-x是正数,这样是降序
      return y-x //降序
    })
    //[8,6,4,2]
    
    深度截图_选择区域_20180312144947.png
    1. Array.join() 合起来连接,默认传参逗号连接
    //可以在数组两个值(key:value)之间插入一些元素来连接成一个字符串
    如果join()不给参数,默认逗号连接的来的字符串。调用了String方法。
    
    深度截图_选择区域_20180312145322.png
    1. Array.concat 联结合并
    • 联结两个数组,两个数组都不会变化,重新生成一个新数组
    • 特殊用法:利用它可以生成新的数组(a.concat([]) 生成一个空数组)来复制数组,值还是前者数组的值,因为是两个数组,所以不相等。
    一般用法
    特殊用法:因为生成了一个新的数组,值还是前者的值,但是跟之前的数组不相等
    1. Array.prototype.map 类似forEach
    // 类似forEach,除了遍历这个数组之外,它有返回值,并将这个函数对数组操作的结果收集起来。
    
    箭头函数表示:a.map(value => value * 2)
    深度截图_选择区域_20180312152354.png 深度截图_选择区域_20180312151822.png
    1. Array.prototype.filter 过滤


      深度截图_选择区域_20180312153241.png
      和map组合使用
      • Array.reduce (遍历数组) 接收一个函数和一个初始值0,函数两个参数(sum,n)sum第一个,n下一个,可以代替map和filter
        比如一个人打劫,被打劫的第一个人就是sum,下一个是n,每次sum+n作为下一个sum,继续sum+n,这样打劫到最后一个人就知道结果打劫了多少钱了。
    • map可以用reduce表示
      声明一个数组
      reduce遍历数组,并传入一个函数和一个空数组,函数接收两个参数,一个是arrar,一个是n,arr是上一个的数组,n是新的数字。
      深度截图_选择区域_20180312155858.png
    1. 见 MDN

    相关文章

      网友评论

          本文标题:js数组--一些常见API

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