美文网首页
javaScript引用类型之Array

javaScript引用类型之Array

作者: 牛油果大虾 | 来源:发表于2018-04-25 16:08 被阅读9次

总结<js高级教程>Array常用的18个api

  • 栈方法(LIFO数据结构--last in first out 最新添加的项最早被移除)
    1 .push()接受任务数量参数,把他们逐个添加到末尾,返回修改后数组的长度
    2 .pop()方法从末尾移除一项,减少数组length值,返回移除的项
image.png
  • 队列方法(FIFO--先进先出)
    3 .shift()移除数组第一项,返回插入的项--对立pop()
    4 .unshift()插入元素在数组前,返回新数组长度--对立push()

    image.png
  • 重排序方法
    5 .reverse()反转数组顺序
    6 . sort()升序排序
    注意:sort排序有时会出错,例如[0,1,5,10,15]排序后[0,1,10,15,5],原因是sort会把数组每一项转成字符串后比较=>为啥"10" < "5"???
    排序推荐用

function compare(value1,value2) {
  if (value1 < value2){
    return -1;
 } else if (value1 > value2) {
    return 1;
} else {
  return 0;
}
reverse()和sort()返回进过排序的数组,会改变原数组
  • 操作方法
    7 .concat()如果传递的值是一或多个数组,该方法会将数组中每一项添加到结果数组中.如果传递的不是数组,则添加到结果数组的结尾返回新数组,不改变原数组.
    image.png
    8 .slice()接受一或两个参数,表示起始位置,如果为1个则末尾为最后一个返回新数组,不改变原数组,可传入负数.
    image.png
    9 .splice()用于向数组中插入项,有三种用法返回从原始数组中删除的项,如果没删除返回空数组,改变了原数组
    删除:两个参数--(第一项的位置 , 删除的个数);
    插入:三个参数--(起始位置 ,0(要删除的项), 要插入的项(如有多个可添加四五及多个项))
    替换:三个参数--(起始位置 ,1(要删除的项数), 要插入的项(如有多个可添加四五及多个项))
    image.png
  • 位置方法
    10 .indexOf()
    11 .lastIndexOf()``返回所查元素下标,查不到返回-1,不改变原数组
    都两个参数--(要查找的内容,查找的起始位置(可选,默认0))
    image.png
    image.png
    由上图知不包含当前位置元素
  • 迭代方法
    12 .every()对数组中的每一项给定函数,如果函数的每一项都返回true,则返回true.
    image.png
    13 .filter()对数组中的每一项运行给定函数,返回该函数返回true项组成的数组.
    image.png
    14 .forEach()对数组中的每一项运行给定函数,无返回值.
    本质上与for循环迭代一样
    15 .map对数组中的每一项运行给定函数,返回函数调用结果组成的数组.
    image.png
    16 .some对数组中的每一项运行给定函数,若任一项返回true则返回true
    image.png
    以上方法都不修改数组的值
  • 归并方法
    17 .reduce()
    18 .reduceRight()迭代数组所有项,返回最终值
    两个参数--(一个函数(该函数接受四个参数pre,cur,index,array),初次迭代的项(可选));
    image.png
    image.png
    image.png

两个的不同就是从哪头开始遍历,其余完全相同

改变原数组的有 push,pop,shift,unshift,reverse,sort,splice七个

不改变的有concat,slice,indexOf,lastIndexOf,every,filter,some,forEach,map,reduce,reduceRight 十一个

相关文章

网友评论

      本文标题:javaScript引用类型之Array

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