记录数组常用方法汇总

1.往数组中添加项

var colors = ['red','green','black']
console.log(colors) // ['red','green','black']
colors.push('white') // 往数组最后添加项
console.log(colors) // ['red','green','black','white']
colors.unshift('yellow') // 往数组前添加项
console.log(colors) // ['yellow','red','green','black','white']
复制代码

2.从数组中删除项

colors.pop() // 删除数组最后一项
console.log(colors) // ['yellow','red','green','black']
colors.shift() // 删除数组第一项
console.log(colors) // ['red','green','black']复制代码

3.数组转化为字符串join(),并不会改变原数组,而是返回一个字符串

console.log(colors.join('-')) // red-green-black
console.log(colors) // ['red','green','black']复制代码

4.数组的排序方法sort(),可以传参数也可以不传参数,如果不传参数的话,数组会按照字符编码的顺序进行排序(并不会按照数值大小来排序)。如果我们想实现按照数值大小来排序的话,必须传入参数,这里我们可以传入一个排序函数来解决这个问题

var arr = [1, 3, 5, 15, 10, 9]
arr.sort()
console.log(arr) // [1,10,15,3,5,9]
arr.sort(function(a,b){
   return a-b
})
console.log(arr) // [1,3,5,9,10,15]复制代码

5.将数组内的所有项反转,末尾项成功第一项,reverse()

arr.reverse()
console.log(arr) // [15,10,9,5,3,1]
复制代码

6.查找元素在数组中的位置,indexOf(item,[start]),lastIndexOf(item,[start]),indexOf从数组前开始查找到第一个匹配的项的位置,lastIndexOf从数组后开始查找到第一个匹配的项的位置,这两种方法都不会改变原数组

var arr = [1,3,4,4,3,7,3,2,1]
arr.indexOf(1) // 0
arr.lastIndexOf(1) // 8
arr.indexOf(1,1) // 8
arr.lastIndexOf(1,2) // 0复制代码

7.数组操作方法concat()、slice()、splice()

concat()方法用于连接两个或多个数组,该方法不会改变原数组,而是返回一个被连接数组的副本

var arr = [1,2,3]
console.log(arr.concat(4,5)) // [1,2,3,4,5]
console.log(arr) // [1,2,3]
var arr1 = [5,6,'89']
console.log(arr.concat(arr1)) // [1,2,3,5,6,'89']复制代码

slice(start,end)方法,并不会改变原数组

start必须。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始计算起的位置。也就是说,-1指最后一个位置,-2指倒数第二个元素,以此类推。

end可选。规定从何处结束选取,该参数是数组片段结束处的数组下表。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

返回值:返回一个新的数组,包含从start 到end(不包括该元素)的arrayObject中的元素

var arr = [1,2,3,4,5]
console.log(arr.slice(2)) // [3,4,5]
console.log(arr.slice(2,4)) // [3,4]
cosnole.log(arr) // [1,2,3,4,5]复制代码

splice()有删除,插入,替换的功能

删除

需要两个参数,要删除的第一项的位置和要删除的项数

var arr = ['blue','red','black']
var removed = colors.splice(0,2)
console.log(arr) // ['black']
console.log(removed) // ['blue', 'red']复制代码

插入

需要三个参数:起始位置、0(要删除的项数)和要插入的项

var arr = ['red','green','black']
var removed = arr.splice(0,0,'yellow')
console.log(arr) // ['yellow','red','green','black']
console.log(removed) // []复制代码

替换

需要三个参数:起始位置、要删除的项数和要插入的任意数量的项

var arr = ['red','green','blue']
var removed = arr.splice(0,2,'black')
console.log(arr) // ['black','blue']
console.log(removed) // ['red','green']复制代码


转载于:https://juejin.im/post/5cce44f7e51d456e51614b4d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值