2022-12-29 AM数组常用的方法

63 阅读6分钟

数组常用的方法

var arr=[1,2,3]

console.log('原始的数字',arr)

1.push

  • 语法:数组.push(数据)
  • 作用:向数组末尾添加数据
  • 返回值:追加数据后,数组最新的长度(length)
var len = arr.push(500)
console.log(len)//4
console.log(arr)//[1,2,3,500

2.pop

  • 语法:数组.pop(数据)
  • 作用:删除数组最后一条数据
  • 返回值:被删除的数据
var po = arr.pop()
console.log(po)//3
console.log(arr)//[1,2]

3.unshift

  • 语法:数组.unshift(数据)
  • 作用:向数组开头添加数据
  • 返回值:添加数据后,数组最新的长度(length)
var len = arr.unshift(666)
console.log(len)//4
console.log(arr)//[666,1,2,3]

4.shift

  • 语法:数组.shift()
  • 作用:删除数组第一条数据
  • 返回值:被删除的数据
var st = arr.shift()
console.log(st)//1
console.log(arr)//[2,3]

5.reverse

  • 语法:数组.reverse()
  • 作用:反转数组
  • 返回值:反转后的数组
var newArr=arr.reverse()
console.log('newArr:',newArr)//[3,2,1]
console.log('arr:',arr)//[3,2,1]

6.sort

  • 语法1:数组.sort()
  • 作用 :会将数据转换为字符串后,一位一位的对比
  • 返回值:排序后的数组

var arr=[100,101,200,10001,100002,1000003,10]

console.log('原始数组',arr)

var newArr=arr.sort()
console.log(newArr)//[10,100,1000003,100002,10001,101,200]
console.log(arr)//[10,100,1000003,100002,10001,101,200]
  • 语法2:数组.sort(function (a,b){return a - b})
  • 作用 :会按照数字大小升序排列
  • 返回值:排序后的数组
var newArr = arr.sort(function (a, b) {return a - b})
console.log(newArr)//[10,100,101,200,10001,100002,1000003]
console.log(arr)//[10,100,101,200,10001,100002,1000003]
  • 语法3:数组.sort(function (a,b){return b - a})
  • 作用:会按照数字大小降序排列
  • 返回值:排序后的数组
var arr = [100,101,200,10,'999','123abc','qwe']
console.log('原始数组',arr)
var newArr = arr.sort(function (a, b) { return b - a })
console.log(newArr) //['999',200,101,100,10,'123abc','qwe']
console.log(arr) //['999',200,101,100,10,'123abc','qwe']

7.splice

  • 语法1:数组.splice(开始索引,多少个)
  • 作用:截取数组部分内容
  • 返回值:截取出来的部分内容 组成的数组
var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组',arr)
var newArr = arr.splice(3,4)
console.log(newArr)//[4,5,6,7]
console.log(arr)//[1,2,3,8,9]
  • 语法2:数组.splice(开始索引,多少个,插入的数据1,插入的数据2,.....)
  • 作用:截取数组部分内容,并插入新的数据
  • 返回值:插入新数据的数组
var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组',arr)
var newArr = arr.splice(3,4,'数据1','数据2','数据3')
console.log(newArr)//[4,5,6,7]
console.log(arr)//[1,2,3,'数据1','数据2','数据3',8,9]
//不管插入多少个数据,都是从下标3开始的

8.slice

  • 语法:数组.slice(开始索引,结束索引)
  • 作用:截取数组部分内容
  • 返回值:截取出来的部分内容组成的新数组
var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组',arr)
var newArr = arr.splice(3,4)
console.log(newArr)//[4]
console.log(arr)//[1,2,3,4,5,6,7,8,9]

参数包前不包后 不写开始索引默认是0 不写结束索引默认是数组的length

var newArr = arr.splice(5)//不写结束索引 相当于数组的length
console.log(newArr)//[6,7,8,9]
console.log(arr)//[1,2,3,4,5,6,7,8,9]
var newArr = arr.splice()//不写开始索引 开始索引相当于0,结束索引相当于length
console.log(newArr)//[1,2,3,4,5,6,7,8,9]
console.log(arr)//[1,2,3,4,5,6,7,8,9]

参数支持写负数,表示倒数第几个,就是length+负数

var arr = [1,2,3,4,5,6,7,8,9]
console.log('原始数组',arr)
var newArr = arr.slice(3,-2)
console.log(newArr)//[4,5,6,7]
console.log(arr)//[1,2,3,4,5,6,7,8,9]

9.concat

  • 语法:原始数组.concat(数组1,数组2,.....,数据1,数据2,...)
  • 作用:进行数据拼接,把数组...数据之类的小括号里的内容, 拼接在原始数组中
  • 返回值:拼接好的数组
var arr = [1,2,3]
console.log('原始数组: ', arr)
var newArr = arr.concat([4, 5, 6], [10, 20], ['a', 'b', 'c'], 'qwer')
console.log('newArr', newArr)// [1, 2, 3, 4, 5, 6, 10, 20, 'a', 'b', 'c', 'qwer']
console.log('arr', arr)//[1,2,3]

10. join

  • 语法: 数组.join('连接符')
  • 作用: 使用 "连接符", 把数组内的每一个数据连接成一个字符串 (不写连接符, 默认使用的是 逗号)
  • 返回值: 连接好的字符串
var arr = [1,2,3]
console.log('原始数组: ', arr)
var newArr = arr.join()//不传递连接符,默认使用的是逗号链接
console.log(newArr)//1,2,3
var arr = [1,2,3]
console.log('原始数组: ', arr)
var newArr = arr.join('!')
console.log(newArr)//1!2!3
var arr = [1,2,3]
console.log('原始数组: ', arr)
var newArr = arr.join('')
console.log(newArr)//123

11. indexOf

  • 语法1: 数组.indexOf(要检查的数据)
  • 作用: 从前到后(从左到右) 检查该数据第一次在该数组内出现 索引
  • 返回值: 找到数据的情况下, 会将该数据第一次出现的下标(索引)返回 没找到的情况下, 会直接返回一个 -1
  • 备注: 开始索引不写的时候 默认是0
 var arr = [1, 1, 2, 2, 3, 3, 0, 4, 0]
 console.log('原始数组: ', arr)
var num = arr.indexOf(100) //-1  此时要检查的数据是 数字100, 但是数组中并没有出现过 数字 100
var num = arr.indexOf(0) //6  此时要检查的数据是 数字0, 数字0按照从左到右的顺序, 第一次出现的下标为 6,
var num = arr.indexOf(1) //0  此时要检查的数据是 数字1, 数字1按照从左到右的顺序, 第一次出现的下标为 0
console.log(num)
  • 语法2: 数组.indexOf(要检查的数据, 开始索引)
  • 作用: 在开始索引的位置, 按照从左到右的顺序, 检查该数据第一次在该数组内出现的 索引
  • 返回值: 找到数据的情况下, 会将该数据第一次出现的下标(索引)返回 没找到的情况下, 会直接返回一个 -1
  • 备注: 开始索引不写的时候 默认是0
var num = arr.indexOf(1, 3) //-1 此时要检查的数据是 数字1, 但是是从下标3的位置开始按照从左往右的顺序查找, 因为后续并没有数字1, 所以此处应该返回 -1
console.log(num)

12. lastIndexOf

  • 语法1: 数组.lastIndexOf(要检查的数据)
  • 作用: 从后向前(从右向左), 检查该数据第一次在该数组内出现的 索引
  • 语法2: 数组.lastIndexOf(要检查的数据, 开始索引)
  • 作用: 在开始索引的位置, 按照从右向左的顺序, 检查该数据第一次在该数组内出现的 索引
  • 返回值: 找到数据的情况下, 返回第一次出现的下标(索引) 没找到的情况下, 直接返回一个 -1
 var arr = [1, 1, 2, 2, 3, 3, 0, 4, 0]
 console.log('原始数组: ', arr)
var num = arr.lastIndexOf(3)//5 此时按照从右向左的顺序查找, 发现第一次出现的位置是 下标 5 的位置
var num = arr.lastIndexOf(3, 2) //-1 此时在下标2的位置按照从右向左的顺序查找, 但是此时在数组中后续的位置并没有出现数字3, 所以按照规则, 应该返回 -1
console.log(num)