数组常用方法

数组常用方法

1、push()

向数组的末尾添加新内容

参数:要添加的项。传递多个用逗号隔开,任何数据类型都可以

返回值:新增后数组的长度

是否改变原数组:改变

let arrayData = ['1', '555', '465']
arrayData.push('888') // 返回数组的长度
console.log(arrayData) // ['1', '555', '465', '888']

2、pop()

删除数组的最后一项

参数:无

返回值:被删除的项

是否改变原数组:改变

let arrayData2 = ['1', '555', '465']
arrayData2.pop() // 返回删除的那项, '465'
console.log(arrayData2) // ['1', '555']

3、shift()

删除数组的第一项

参数:无

返回值:被删除的项

是否改变原数组:改变

let arrayData3 = ['1', '555', '465']
arrayData3.shift() // 返回删除的那项, '1'
console.log(arrayData3) // ['555', '465']

4、unshift()

向数组首位添加新内容

参数:要添加的项,多项用’,'隔开

返回值:新数组的长度

是否改变原数组:改变

let arrayData4 = ['1', '555', '465']
arrayData4.unshift('888', '999') // 数组长度,5
console.log(arrayData4 ) // ['888', '999', '1', '555', '465']

5、slice()

按照条件查找出其中的部分内容

参数:

array.slice(n, m),从索引n开始查找到m处(不包含m)

array.slice(n) 第二个参数省略,则一直查找到末尾

array.slice(0)原样输出内容,可以实现数组克隆

array.slice(-n,-m) slice支持负参数,从最后一项开始算起,-1为最后一项,-2为倒数第二项

返回值:返回一个新数组

是否改变原数组:不改变

let arrayData5 = ['1', '555', '465', '888', '999']
arrayData5.slice(1, 4) // ['555', '465', '888']
arrayData5.slice(2) // ['465', '888', '999']
arrayData5.slice(0) // ['1', '555', '465', '888', '999']
arrayData5.slice(-3, -1) // ['465', '888']
console.log(arrayData5) // ['1', '555', '465', '888', '999']

6、splice()

对数组进行增删改

增加:ary.splice(n,0,m)从索引n开始删除0项,把m或者更多的内容插入到索引n的前面

返回空数组

修改:ary.splice(n,x,m)从索引n开始删除x个,m替换删除的部分

把原有内容删除掉,然后用新内容替换掉

删除:ary.splice(n,m) 从索引n开始删除m个内容

(如果第二个参数省略,则从n删除到末尾)

返回删除的新数组,原有数组改变

// 增加
let arrayData6 = ['1', '555', '465', '888', '999']
arrayData6.splice(1, 0, 'add') // []
console.log(arrayData6) // ['1', 'add', '555', '465', '888', '999']

// 修改下标从1开始两位为'666'
let arrayData7 = ['1', '555', '465', '888', '999']
arrayData7.splice(1, 2, '666', '666') // ['555', '465']
console.log(arrayData7) // ['1', '666', '666', '888', '999']

// 删除下标从1开始四位
let arrayData8 = ['1', '555', '465', '888', '999']
arrayData8.splice(1, 4) // ['555', '465', '888', '999']
console.log(arrayData8 // ['1']

7、join()

用指定的分隔符将数组每一项拼接为字符串

参数:指定的分隔符(如果省略该参数,则使用逗号作为分隔符)

返回值:拼接好的字符串

是否改变原数组:不改变

let arrayData9 = ['1', '555', '465', '888', '999']
arrayData9.join('--') // '1--555--465--888--999'
console.log(arrayData9 // ['1', '555', '465', '888', '999']

8、concat()

用于连接两个或多个数组

参数:参数可以是具体的值,也可以是数组对象。可以是任意多个

返回值:返回连接后的新数组

是否改变原数组:不改变

let arrayData10 = ['土']
let arrayData10End = a.concat(['豆'])
console.log(arrayData10 // ['土']
console.log(arrayData10End // ['土', '豆']

9、indexOf()

检测当前值在数组中第一次出现的位置索引

参数:array.indexOf(item,start) item:查找的元素 start:字符串中开始检索的位置

返回值:第一次查到的索引,未找到返回-1

是否改变原数组:不改变

let arrayData11 = ['a', 'b', 'c', 'a', 'd', 'e']

arrayData11.indexOf('a') // 返回下标 0
arrayData11.indexOf('a', 1) // 返回下标 3
arrayData11.indexOf('f') // 返回-1

10、lastIndexOf()

检测当前值在数组中最后一次出现的位置索引

参数:array.lastIndexOf(item,start) item:查找的元素 start:字符串中开始检索的位置


  1. (注意:此处的参数start代表的开始搜索的索引是从后往前检测)

返回值:第一次查到的索引,未找到返回-1

是否改变原数组:不改变

let arrayData12 = ['a', 'b', 'c', 'a', 'd', 'e', 'f']

arrayData12.lastIndexOf('a') // 3
arrayData12.lastIndexOf('e') // 5
arrayData12.lastIndexOf('e', 2) // -1   相当于在['a', 'b', 'c']中查找
arrayData12.lastIndexOf('e', 5) // 5    相当于在['a', 'b', 'c', 'a', 'd', 'e']中查找

11、includes()

判断一个数组是否包含一个指定的值

参数:指定的内容

返回值:布尔值

是否改变原数组:不改变

let arrayData13= ['a','b','c','d']; 

console.log(arrayData13.includes('c'));//true
console.log(arrayData13.includes(2));//false

12、sort()

对数组的元素进行排序(默认是从小到大来排序 并且是根据字符串来排序的)

参数:可选(函数) 规定排序规则 默认排序顺序为按字母升序

返回值:排序后新数组

是否改变原数组:改变

sort在不传递参数情况下,只能处理10以内(个位数)数字排序

let arrayData14= [5, 4, 88, 99, 56, 12, 1]; 
arrayData14.sort((a, b) => { return a-b}) // [1, 4, 5, 12, 56, 88, 99]
console.log(arrayData14);// [1, 4, 5, 12, 56, 88, 99]

let arrayData15= [5, 4, 88, 99, 56, 12, 1]; 
arrayData15.sort((a, b) => { return b-a}) // [99, 88, 56, 12, 5, 4, 1] 
console.log(arrayData15);// [99, 88, 56, 12, 5, 4, 1] 

13、reverse()

把数组倒过来排列

参数:无

返回值:倒序后新数组

是否改变原数组:改变

let arrayData16= [5, 4, 88, 99, 56, 12, 1];
arrayData16.reverse() // [1, 12, 56, 99, 88, 4, 5]
console.log(arrayData16);// [1, 12, 56, 99, 88, 4, 5]

14、forEach()

循环遍历数组每一项

参数:函数 ary.forEach(function(item,index,ary){}) item:每一项 index:索引 ary:当前数组

返回值:无

是否改变原数组:不改变

forEach中不能使用continue和break,forEach中不能跳出,只能跳过(return跳过)

let arrayData17= [5, 4, 88, 99, 56, 12, 1];
arrayData17.forEach((item, index, arr) => { console.log(item, index, arr)})
5 0 [5, 4, 88, 99, 56, 12, 1]
4 1 [5, 4, 88, 99, 56, 12, 1]
88 2 [5, 4, 88, 99, 56, 12, 1]
99 3 [5, 4, 88, 99, 56, 12, 1]
56 4 [5, 4, 88, 99, 56, 12, 1]
12 5 [5, 4, 88, 99, 56, 12, 1]
1 6 [5, 4, 88, 99, 56, 12, 1]
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别改我bug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值