一、什么是数组
所谓数组,就是一组数据的集合,一个存储在单个变量的优雅方式,在 JavaScript 是常用 New 关键字
let arr = new Array()
或是字面量方式
let arr = []
来声明
二、数组方法
就是操作、判断数组等的方法,例如现有数组 let arr = ['a', 'b', 'c', 'd', 'e', 'f'] ,我们想要对其增、删、改、查,这个时候我们就可以用到 js 给我们提供的方法
1、unshift() / push():向数组开头 / 尾部添加元素
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(arr)
arr.push('x', 'y', 'z') // 这里可以增加任意个,包括0个,但0个没意义
console.log(arr)
arr.unshift('0', '0', '7') // 这里可以增加任意个
console.log(arr)
2、shift() / pop():删除数组第一个 / 最后一个元素
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(arr)
arr.pop() // 删除数组的最后一个元素,这里不用填数量
console.log(arr)
arr.shift() // 删除数组的第一个元素,这里不用填数量
console.log(arr)
3、isArray():判断对象是否是为一个数组,是则返加为:true
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
let noArr = 'abcdef'
let is = Array.isArray(arr)
let is1 = Array.isArray(noArr)
console.log(is)
console.log(is1)
4、map():遍历数组内的每个元素并可对其进行操作后返回一个新的数组
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
let operateArr = arr.map(i => {
if (i !== 'a') return i + 'a' // 可以在里面进行一些操作
return i
})
console.log(operateArr)
5、filter():用于检测每一个元素,项目中我常用于过虑
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
let operateArr = arr.filter(i =>
i >= 'c' // 万物皆可盘
)
console.log(operateArr)
6、every():用于检测数组内所有元素是否符合指定条件,符合返回:true
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
let operateArr = arr.every(i =>
i >= 'c' // 为否时
)
let operateArr1 = arr.every(i =>
i >= 'a' // 为真时
)
console.log(operateArr)
console.log(operateArr1)
7、some():用于检测数组内是否有元素符合指定条件,若有,则返回:true
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
let operateArr = arr.some(i =>
i >= 'f' // 为真时
)
let operateArr1 = arr.every(i =>
i >= 'j' // 为否时
)
console.log(operateArr)
console.log(operateArr1)
8、splice():截取或插入元素
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
// 截取从数组下标1开始数4个
let operateArr = arr.splice(1, 4)
console.log(operateArr)
// 看清楚,被截取后的原数组已经是这个样子的了
console.log(arr)
// 从下标1的0个开始插入新的元素
let operateArr1 = arr.splice(1, 0, 'AB', 'BC', 'CD')
// 注意看下面打印出来结果的变化,如果是从下标1的第1个开始呢?
console.log(arr)
console.log(operateArr1)
9、slice():得到数组中某段元素的新数组
let arr = ['a', 'b', 'c', 'd', 'e', 'f']
// 获取从下标1到下标4的元素
let operateArr = arr.slice(1, 4)
console.log(operateArr)
// 注意,写下标时,正数就是从前向后数,
// 负数就是从后向前数
// 这个方法不会改变原数组
console.log(arr)
10、indexOf():检测数组中是否存在某个元素,存在则返回首次出现的下标
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'c']
// 检测的时候会区分大小写
console.log(arr.indexOf('c'))
console.log(arr.indexOf('C'))
11、includes():检测数组中是否包含某个元素,包含则返回:true,用法同上面的 some() 一样,没什么好说的
12、concat():一个合并数组的方法,能把两个数组合并到一起
let arr = ['a', 'b', 'c', 'd']
let arr1 = [ 'e', 'f', 'c']
let operateArr = arr.concat(arr1)
console.log(operateArr)
console.log('---------------看下有没有影响原数组---------------')
console.log(arr)
console.log(arr1)
13、join():数组转换成字符串
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'c']
console.log('----合并前----')
console.log(arr)
console.log('----合并后----')
console.log(arr.join(''))
14、split():把字符串切割成一个数组
let arr = 'abcdefc'
console.log('----切割前----')
console.log(arr)
console.log('----切割后----')
console.log(arr.split(''))
15、forEach():和 map() 有点类似,用法参照 map() 即可
16、sort():一般用于数组排序
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'c', 'ab']
// 仔细看排得好不好,如果你觉得以后排序就能用这个,那你就太天真了
console.log(arr.sort())
let arrNum = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
// 看看,这是什么,会的都给你整不会
console.log(arrNum.sort())
17、reverse():元素倒序
let arrNum = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
console.log(arrNum.reverse())