js数组--一些常见API

  1. Array.forEach(function(x,y){}) 接收一个函数,函数不传参数,没有返回值,也就是undefined
//可以给数组传一个函数,这个函数必须接收两个参数
前边是value,后边是key。
var a = [0:'c',1:'d']; 
a.forEach = function(x){
    for(let i=0; i
  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]
js数组--一些常见API_第1张图片
深度截图_选择区域_20180312144947.png
  1. Array.join() 合起来连接,默认传参逗号连接
//可以在数组两个值(key:value)之间插入一些元素来连接成一个字符串
如果join()不给参数,默认逗号连接的来的字符串。调用了String方法。
js数组--一些常见API_第2张图片
深度截图_选择区域_20180312145322.png
  1. Array.concat 联结合并
  • 联结两个数组,两个数组都不会变化,重新生成一个新数组
  • 特殊用法:利用它可以生成新的数组(a.concat([]) 生成一个空数组)来复制数组,值还是前者数组的值,因为是两个数组,所以不相等。
js数组--一些常见API_第3张图片
一般用法

js数组--一些常见API_第4张图片
特殊用法:因为生成了一个新的数组,值还是前者的值,但是跟之前的数组不相等
  1. Array.prototype.map 类似forEach
// 类似forEach,除了遍历这个数组之外,它有返回值,并将这个函数对数组操作的结果收集起来。
js数组--一些常见API_第5张图片
箭头函数表示:a.map(value => value * 2)

js数组--一些常见API_第6张图片
深度截图_选择区域_20180312152354.png
js数组--一些常见API_第7张图片
深度截图_选择区域_20180312151822.png
  1. Array.prototype.filter 过滤


    js数组--一些常见API_第8张图片
    深度截图_选择区域_20180312153241.png

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

你可能感兴趣的:(js数组--一些常见API)