javascript中数组方法总结

虽然知道有哪些方法,但是不总结以下,等到用的时候还是不知道怎么下手,索性一起总结一下。(ES6之后补充)

栈、队列方法

1. push() 和 unshift()向数组末位(首位)添加元素

返回数组长度,改变原数组

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

2. pop() 和 shift()移除数组最后一位(第一位)元素

返回被移除的那一位,改变原数组

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

排序方法

1. reverse() 翻转数组排列顺序

改变原数组,并将其返回

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

2. sort() 数组排序,无参数情况会按升序排列,会调用数组每项toString()方法,然后比较字符串

改变原数组,并将其返回

1
2
var arr = [2, 22, 3, 15]
arr.sort()//[15, 2, 22, 3]

sort() 也可接收一个函数作为参数,函数接收两个参数,函数内返回负数则为升序(不需要交换位置),返回正数则为降序(参数位置互换),返回0则两参数相等

即返回第一个参数减第二个参数为升序(第二个参数减第一个参数为降序)

1
2
3
4
5
6
7
var arr = [2, 22, 3, 15]
arr.sort((a, b) => {
return a - b
})//[2, 3, 15, 22]
arr.sort((a, b) => {
return b - a
})//[22, 15, 3, 2]

操作、位置方法

1. concat()合并多个数组

不改变原数组,返回合并后的结果

1
2
var arr = [1, 2, 3]
arr.concat(4, [5, 6])//[1, 2, 3, 4, 5, 6]

2. slice()截取字符串

第一个参数为从指定位置开始截取,第二个参数为截取到第几位(不包括截止位)

不改变原数组,返回截取得到的数组

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

第二个参数可以为负数,表示从数组最后一位开始算

3. splice()删除,插入,替换

第一个参数表示从指定位开始截取

第二个参数表示截取几位

第三个参数表示在截取的位置插入第三位参数

改变原数组,返回截取掉的数组

1
2
var arr = [1, 2, 3]
arr.splice(1, 2)

4. indexOf() 和 lastIndexOf()正向(反向)查找数组项

第一个参数为查找项,第二个参数为从第几位开始查找

不改变原数组,返回索引值

1
2
3
var arr = [1, 2, 3, 2, 4, 5]
arr.indexOf(2)//1
arr.lastIndexOf(2)//3

遍历方法

都接收三个参数,

第一个表示数组每一项

第二个表示该项的索引值

第三个表示操作的哪个数组

1. every((item) => {}):对数组每一项进行判断或操作

对数组中每一项都运行给定函数,都返回true则返回true,否则返回false

1
2
3
4
var arr = [1, 2, 3, 4, 5]
arr.every(item => {
return item > 0 ? true : false
})

2. filter(item => {}):筛选符合条件的数组

返回符合给定条件的数组项组成的数组

1
2
3
4
var arr = [1, 2, 3, 4, 5]
arr.filter(item => {
return item > 2
})//[3, 4, 5]

3. forEach(item => {}):遍历数组每一项,没有返回值

4. map(item => {}):对数组每一项进行操作并返回操作之后的数组

1
2
3
4
var arr = [1, 2, 3, 4, 5]
arr.map(item => {
return ++item
})//[2, 3, 4, 5, 6]

5. some(item => {}):当数组满足给定条件即返回true,不一定把数组全部遍历

1
2
3
4
var arr = [1, 2, 3, 4, 5]
arr.some(item => {
return item > 3
})

归并方法

1. reduce()和reduceRight()

前者表示从头开始遍历,后者表示从尾开始遍历

接受两个参数,一个是在数组每一项上调用的函数,另一个可选参数是作为归并基础的初始值。其中作为参数的函数接受4个参数:前一个值、当前值、索引和数组对象。

这个函数返回的任何值都会作为第一个参数自动传给下一项

1
2
3
4
5
6
7
8
var arr = [1, 2, 3, 4, 5]
arr.reduce((now, last, index, arr) => {
return now + last
})//15

arr.reduce((now, last, index, arr) => {
return now + last
}, 10)//25

参考 简书