Array

2019-10-10  本文已影响0人  Sunshine_0676

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个参数(前一个值,当前值,项的索引,数组对象)

上一篇下一篇

猜你喜欢

热点阅读