Array

作者: Sunshine_0676 | 来源:发表于2019-10-10 18:51 被阅读0次

    1.检测数组 var instanceof Array  Array.isArray(val)

    2.转换方法 toString toLocaleString valueOf join('分隔符')

    3.栈方法(后进先出)

    push 接受任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

    pop 从数组末尾移除最后一项,减少数据的length值,然后返回移除的项。

    4.队列方法(先进先出)

    shift 移除数组中的第一项,减少数组长度,并返回移除的项

    shift和pop结合,可以使用队列一样使用数组。

    unshift 在数组前端添加任意个项,并返回新数组的长度。

    unshift和pop结合,可以从相反的方向模拟队列。

    5.重排序方法

    reverse 反转数组项的顺序

    sort 默认情况按升序排列数组项  调用每个数组项的toString转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值,还是比较的是字符串。

    eg: var val = [1,2,5,10,15]

          val.sort()

          console.log(val) // [1,10,15,2,5]

    可见,例子中的值顺序没有问题,但是sort方法根据字符串的比较而改变了顺序。这种排序不是最佳方案。因此sort()可接受一个比较函数作为参数。

    比较函数接受两个参数,如果第一个参数应该位于第二个之前则返回一个负数,如果两个参数相等 则返回 0,如果第一个参数应该位于第二个之后则返回一个正数。

    function compare(value1, value2) {

      if (value1 < value2) {

        return -1;

      } else if (value1 > value2) {

        return 1;

      } else {

      return 0;

      }

    }

    对于数值类型或者其 valueOf()方法会返回数值类型的对象类型,可以使用一个更简单的比较函 数。这个函数只要用第二个值减第一个值即可。

    function compare(value1, value2){   

      return value2 - value1;

    }

    6.操作方法

    concat (基于当前数组中的所有项创建一个新数组)创建当前数组的副本,然后将接收的参数添加到这个副本的末尾,最后返回新构建的数组,原数组保持不变。

    slice(基于当前数组中的一个或多个项创建一个新数组)接收一或两个参数,即要返回项的起始和结束位置。一个参数,即返回从该参数指定位置开始到末尾的所有项。两个参数,即起始位置和结束位置之间的项,不包括结束为止的项。原数组保持不变。

    splice (最强大的数组方法)

    主要用途:向数组的中部拆箱,使用这种方法的方式有3种

    ~删除 可以删除任意数量的项,只需指定两个参数(要删除的第一项的位置, 删除的个数),返回删除的项的数组

    ~插入 可以向指定位置插入任意数量的项,只需三个参数(起始位置,0(要删除的项数),要插入的项)如果要插入的多,可以再传入多个项。返回删除的项的数组。

    ~替换 可以项制定位置插入任意数量的项,且同事删除任意数量的项,只需三个参数(起始位置,要删除的项数,要插入的项)。返回删除的项的数组。

    7.位置方法

    indexOf和lastIndexOf 都接受两个参数,(要查找的项和查找起点的位置的索引(可选))。一个是从前往后,一个是从后往前。两个方法都返回要查找的项在数组中的位置,没有就返回-1。在比较第一个参数与数组中的每一项时,会使用全等操作符,也就是说严格相等(===)。

    8.迭代方法

    every filter forEach map some 都接受两个参数(要在每一项上运行的函数,运行该函数的作用域对象(可选,影响this的值))

    传入方法中的函数会接受3个参数(数组项的值, 该项在数组中的位置,数组对象本身)。

    every 每项运行给定函数,如果该函数对每一项都返回true,则返回true,否则false

    filter 每项运行给定函数,返回该函数会返回true的项组成的数组。

    forEach 对每一项运行给定函数,无返回值。

    map 每项运行给定函数,返回每次函数调用的结果组成的数组。

    some 每项运行给定函数,如果该函数对某一项返回了true,则返回true,否则返回false。

    9.归并方法

    es5新增了两个归并方法 reduce reduceRight 都会迭代数组的所有项,然后构建一个最终返回的值。一个从前往后逐个遍历,一个从后往前。都接收两个参数(每项调用的函数,归并基础的初始值(可选))。

    传入方法中的函数会接收4个参数(前一个值,当前值,项的索引,数组对象)

    相关文章

      网友评论

          本文标题:Array

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