一. 获取数组长度

  • array.length

二. 检测数组

方法一:使用instanceof检测:

if(array instanceof Array) {
    // 进行数组操作
}

方法二:使用isArray()方法:

if(Array.isArray(array)) {
    // 进行数组操作
}

三. 转换为字符串

  • toLocaleString()
  • toString()
  • valueOf()

四. 向数组中插入或删除元素

栈方法(Last in First out):

  • push() :将新元素插入到数组的尾部
  • pop() :删除最后一个元素

堆方法(First in First out):

  • shift() :将新元素插入到数组的头部
  • unshift() :删除第一个元素

五. 数组重排方法

  • array.sort() : 正向排序
  • array.reverse() : 反向排序

六. 合并数组

语法:

array.concat(anotherArray);

如果传递的是一个或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。

七. 截取,获得新数组

语法:

array.slice(起始位置[, 结束位置]);

slice()方法接受一或两个参数,即要返回项的起始和结束位置。

在只有一个参数的情况下,slice()会返回从该参数指定位置开始到当前数组末尾的所有项。slice()不会影响原始数组。

八. 向数组中部插入数据:splice()

语法:

array.splice(起始位置, 删除的项数, [要插入的多个项]);

8.1 删除:

可以删除任意数量的项,需要指定前两个参数。譬如:splice(0, 2);

8.2 插入:

只需提供3个参数:起始位置、 删除的项数(0)、 要插入的多个项。 譬如:splice(1, 0, “hello”, “world”);

8.3 替换:

可以向指定位置插入任意数量的项。需要提供三个参数。 splice()会返回一个数组,该数组包含从原始数组中删除的项(如果没有删除的项,则返回一个空数组)。

九. 位置方法

  • indexOf() : 元素在数组中的索引
  • lastIndexOf() : 元素在数组中的反向索引

这两个方法都接受两个参数:要查找的项和(可选的)表示查找起点位置的索引。

这两个方法都返回要查找的项在数组中的位置,在没找到的情况下返回-1。

兼容性:IE9+支持。

十. 迭代方法

  • every():如果该函数对每一项都返回true,则返回true;
  • filter():返回该函数会返回true的项组成的数组;
  • forEach():没有返回值;
  • map():返回每次函数调用的结果组成的数组;
  • some():如果该函数对任一项返回true,则返回true;

以上5个方法中每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值。

传入这些方法的函数会接收3个参数:数组项的值、该项在数组中的位置和数组对象本身。

兼容性:IE9+

十一. 归并方法

  • reduce():从数组的第一项开始,逐个遍历到最后。
  • reduceRight():从数组的最后一项开始,向前遍历到第一项。

作用:迭代数组的所有项,然后构建一个最终返回的值。

这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。

兼容性:IE9+

具体实践可参考:http://www.dengzhr.com/js/411

本文作者:子匠_Zijor,转载请注明出处:http://www.dengzhr.com/js/1075