JavaScript 数组的方法总结

数组方法大全

(一)检测方法数组

检测一个对象是否为一个数组函数

① instanceof 操做符编码

let arr = []
arr instanceof Array // true

② Array.isArray( )spa

let arr = []
Array.isArray(arr) // true  IE9如下不支持该方法

 

(二)转换方法code

① toString( )对象

返回由数组中每一个值的字符串形式拼接而成的一个以逗号分隔的字符串
var arr = [1,2,3,4];
console.log(arr.toString()); // '1,2,3,4'

② join( )blog

将数组转换为字符串,默认状况下与toString()的结果一致,不同的是join()方法能够指定具体的分隔符,分隔符做为方法的实参以字符串形式传入。排序

③ valueOf( )索引

返回原数组队列

 

(三)栈方法

① push( )

能够接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度,该方法会改变原数组。

② pop( )

从数组末尾删除一个元素,返回被删除的元素,该方法会改变原数组。

 

(四)队列方法

① shift( )
删除数组的第一个元素,并将该元素返回,该方法会改变原数组。

② unshift( )
在数组开头添加一个或多个元素,并返回新数组的长度,该方法会改变原数组。

 

(五)重排序方法

① reverse()
反转数组,并返回反转后的数组,该方法会改变原数组。

② sort()
用于对数组元素进行排序,默认按照Unicode编码进行升序排列,除此以外还能够自定义排序,这时须要一个回调函数做为方法的参数,函数须要两个形参。该方法会改变原数组。
排序原理:回调函数会执行不少次(具体根据数组的复杂程度而言),每次都随机的抽出数组的两个元素a,b做为实参,按照原数组的顺序,a必定在b前面,若是结果大于0,则交换位置;结果等于0,则证实a与b相等,不交换位置;若是小于0,则a与b不交换位置。

var arr = [2,3,1,5,4];
arr.sort(function(a,b){
    return a-b;//降序改成b-a
})

 

(六)操做方法

①concat( )
先复制当前数组,而后再把实参添加至新建立的数组中,并返回新的数组,该方法不会改变原数组。

var arr = [1,2,3,4,5];
arr.concat();//复制arr数组
arr.concat(6,7,8);//将6,7,8三个元素添加至新建立的数组末尾

②slice( )

用于截取数组,该方法须要两个参数,第一个参数表示截取的开始索引位置(包括),第二个参数表示截取的结束位置(不包括),其中,第二个参数不是必要的,若是没有第二个参数,则默认从开始索引开始截取至结尾。该方法不会改变原数组,只是将截取的元素储存于一个新的数组中,并返回这个数组。

var arr = [2,1,3,2,4];
arr.slice(1); //[1,3,2,4]
arr.slice(1,2); //[1]

③splice()
这个方法有如下三种功能:
删除:能够删除任意数量的元素,只需指定两个参数,要删除的第一个元素的索引和要删除的数量。

var arr = [2,1,3,2,4];
arr.splice(0,2);//表明从索引为0的元素开始日后删除两个元素,返回被删除的元素所组成的数组:[2,1]

插入:能够指定位置插入任意数量的元素,须要提供三个参数,起始位置、0(要删除的数量)、要插入的元素。

var arr = [2,1,3,2,4];
arr.splice(0,0,5);//表明从索引为0的位置前面插入一个元素5,返回的是一个空数组(由于没有删除元素)

替换:能够向指定位置插入任意数量的元素,且同时删除任意数量的元素,须要三个参数,起始位置、要删除的数量和要插入任意数量的元素。

var arr = [2,1,3,2,4];
arr.splice(2,2,6);//从索引为2的位置开始删除两个元素,返回被删除的元素,而后由第三个参数替换被删除元素所在的位置

注意:该方法始终都会返回一个数组,该数组中包含从原数组中删除的元素,若是没有删除任何元素,则返回一个空数组。

 

(七)位置方法

① indexOf( )

查找数组中的元素(全等比较),一旦找到则返回这个元素在数组中的索引,若是没有找到则返回-1。

② lastIndexOf( )

与indexOf()基本一致,不一样的是该方法是从数组的末尾开始寻找。

 

(八)迭代方法

① every( )

对数组中的每个元素执行回调函数,若是该函数对每个元素都返回true,则返回true。

② some( )

对数组中的每个元素运行回调函数,若是该函数对任意一个元素返回true,则返回true。

③ filter( )

filter意为过滤的意思,在这里也正是过滤的做用,利用回调函数过滤数组的某些元素(留下结果为 true 的元素),返回一个新的数组,该方法不会改变数组。

var arr = [2,1,3,2,3,4];

var result = arr.filter(function (item,index,array) {
    return item > 2;
});

console.log(arr); //[2,1,3,2,3,4]
console.log(result); //[3,3,4]

④ forEach( )

循环,太经常使用了这个~~

⑤ map( )

加工,每一个元素都执行回调函数后返回的结果~

 

(九)归并方法

reduce( ) 与 reduceRight( )

这两个方法都会迭代数组的全部元素,而后构建一个最终返回的值。其中,reduce()方法从数组的第一个元素开始,逐个遍历到最后,而reduceRight()则从数组的最后一个元素开始,向前遍历。这两个方法都接收两个参数:一个是在每个元素上运行的回调函数,另外一个(可选的)做为归并基础的初始值。回调函数接收4个参数:前一个值,当前值,元素索引和数组对象。这个函数返回的任何值都会做为第一个参数自动传给下一个元素。

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev, cur, index, array){
    return prev + cur;
});
console.log(sum); //15

 

(十)ES 7 新增的方法 —— includes( )

用于检查数组中是否含有指定的元素,若是有则返回true。

let arr = [1,2,3,4,5]
arr.includes(2) //true
相关文章
相关标签/搜索