js数组--一些常见API

2018-03-12  本文已影响0人  CeaCrab
  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 联结合并
一般用法
特殊用法:因为生成了一个新的数组,值还是前者的值,但是跟之前的数组不相等
  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,这样打劫到最后一个人就知道结果打劫了多少钱了。
  1. 见 MDN
上一篇 下一篇

猜你喜欢

热点阅读