小陈同学の前端笔记 | 关于数组一些常用方法的整理(二)

264 阅读3分钟

「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

上一期我们介绍了会改变数组自身的一些方法 小陈同学の前端笔记 | 关于数组一些常用方法的整理(一),这期我们将继续介绍关于数组的其他常用方法。

不会改变原数组的方法

slice()

定义:slice()方法返回一个新数组,该数组是由beginend决定的对原数组的一个浅拷贝

语法:Array.prototype.slice(begin,end)

参数:

  1. begin(可选):默认为0,表示从该索引开始提取数组元素。
  2. end(可选):默认为数组长度,表示到该索引前停止提取数组元素。 [begin,end)

使用:

let arr = [1,2,3,4,5]

let arr1 = arr.slice(1)
console.log('数组arr1:',arr1)    // [2, 3, 4, 5]
let arr2 = arr.slice(1,3)
console.log('数组arr2:',arr2)    // [2, 3]
let arr3 = arr.slice()
console.log('数组arr3:',arr3)    // [1, 2, 3, 4, 5]

// 测试浅拷贝
let testCopyArr = [1,2,{name:'小陈同学吗'},3,4]
let cpArr = testCopyArr.slice(0,3)
testCopyArr[0] = 99
testCopyArr[2].name = 'Test'
console.log('改变后的数组cpArr:',cpArr)
// 0: 1
// 1: 2
// 2: {name: 'Test'}

concat()

定义:concat()方法用于合并两个或多个数组,并返回新数组。

语法:Array.prototype.concat(item1,......,itemN)

参数:

  1. items: 用于合并的值/数组。

使用:

let arr1 = [1,2,3]
let arr2 = [4,5,6]
let arr3 = arr1.concat(arr2)
console.log('数组arr3:',arr3) // [1, 2, 3, 4, 5, 6]

let arr4 = arr3.concat(arr1,arr2,'?','!',666)
console.log('数组arr4:',arr4) // [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, '?', '!', 666]

join()

定义:join()方法用于将数组中的所有元素连接成一个字符串并返回这个字符串,可指定连接字符串。

语法:Array.prototype.join(separator)

参数:

  1. separator(可选):指定一个字符串来分隔数组中的每一个元素,默认为","

使用:

let arr = [1,2,3,4,5]

let str = arr.join()
console.log('连接后的字符串str:',str)      // 1,2,3,4,5
let str1 = arr.join('#')
console.log('连接后的字符串str1:',str1)    // 1#2#3#4#5
let str2 = arr.join('abc')
console.log('连接后的字符串str2:',str2)    // 1abc2abc3abc4abc5

indexOf()

定义:indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

语法:Array.prototype.indexOf(value,fromIndex)

参数:

  1. value(必选):需要查找的元素。
  2. fromIndex(可选):开始查找的位置。默认为0,若大于等于数组长度,则返回-1。

使用:

let arr = [1,2,1,4,1,NaN]
let pos1 = arr.indexOf(1)
let pos2 = arr.indexOf(1,1)
let pos3 = arr.indexOf(1,10)
let pos4 = arr.indexOf(NaN)        // 无法识别 NaN
console.log(pos1,pos2,pos3,pos4)   // 0 2 -1 -1

lastIndexOf()

定义:lastIndexOf()方法返回在数组中可以找到一个给定元素的最后一个索引,如果不存在,则返回-1。(从后往前查找)

语法:Array.prototype.lastIndexOf(value,fromIndex)

参数:

  1. value(必选):需要查找的元素。
  2. fromIndex(可选):开始逆向查找的位置。默认为数组长度-1。

使用:

let arr = [1,2,1,4,1,NaN,2]
let pos1 = arr.lastIndexOf(2)
let pos2 = arr.lastIndexOf(2,5)
let pos3 = arr.lastIndexOf(2,10)
let pos4 = arr.lastIndexOf(NaN)
console.log(pos1,pos2,pos3,pos4)    // 6 1 6 -1

includes()

定义:includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false

语法:Array.prototype.includes(value,fromIndex)

参数:

  1. value(必选):需要判断的元素。
  2. fromIndex(可选):开始查找的位置,默认为0。

使用:

let arr = [1,2,'小陈同学吗',NaN]
console.log(arr.includes('小陈同学吗'))   // true
console.log(arr.includes(1,1))           // false
console.log(arr.includes(NaN))           // true 识别NaN

结语

下一期将介绍一些数组的遍历方法。

如有纰漏,欢迎指出!