一、增
1、push 末尾增加
const arr = [1,2,3]
arr.push(4)
console.log(arr)
2、unshift 开头增加
const arr = [1,2,3]
arr.unshift(4)
console.log(arr)
二、删
1、pop 末尾弹出
const arr1 = [1,2,3]
const xxx = arr1.pop()
console.log(arr1)
console.log(xxx)
2、shift 开头弹出
const arr1 = [1,2,3]
const xxx = arr1.shift()
console.log(arr1)
console.log(xxx)
三、改
1、forEach 遍历
- 不改变原数组的栈元素
- 可以改变原数组的栈元素所引用的堆内容
语法:arr.forEach((元素,下标,原数组)=>{执行内容})
const arr1 = [1, 3, 2]
arr1.forEach((item, index, arr) => {
item = item + 1
})
console.log(arr1)
const arr2 = [{ xxx: 1 }, { xxx: 2 }, { xxx: 3 }]
arr2.forEach((item, index) => {
item.xxx = '666'
})
console.log(arr2)
2、splice() 根据下标修改数组内元素
语法:arr.splice(下标,数量,值)
const arr1 = [1, 2, 3]
arr1.splice(1, 0, '666')
console.log(arr1)
const arr1 = [1, 2, 3]
arr1.splice(1, 1)
console.log(arr1)
const arr1 = [1, 2, 3]
arr1.splice(1, 1, '666')
console.log(arr1)
3、sort 排序
语法:arr.sort((第一个元素,第二个元素)=>{返回值})
- 返回值:
- >0 // a在b后
- <0 // a在b前
- ===0 // 排序不变
const arr1 = [1, 3, 2]
arr1.sort((a, b) => {
return a > b ? 1 : -1
})
console.log(arr1)
4、reverse 翻转
const arr1 = [1, 2, 3]
arr1.reverse()
console.log(arr1)
5、fill 覆盖
语法:arr.fill(值,开始下标,结束下标[不包含])
const arr1 = [1, 2, 3]
arr1.fill('666', 1, 2)
console.log(arr1)
四、取
1、join 转字符串
- 返回数组元素组成的字符串,不改变原数组
- 只能转(Number,String,Boolean)类型元素
语法:const str = arr.join('分隔符')
const arr1 = [1, 2, 3, '666', true]
const str = arr1.join(' && ')
Bo
console.log(str)
2、filter 过滤
- 遍历原数组,返回符合条件的元素组成的新数组,不改变原数组
语法:const newArr = arr.filter((元素,下标,原数组)=>{return true})
- return为true返回当前元素,为false跳过当前元素
const arr1 = [1, 2, 3]
const newArr = arr1.filter((item, index, arr) => {
if (item > 1) {
return true
}
})
console.log(arr1)
console.log(newArr)
3、map 由原数组得新数组
语法:const newArr = arr.map((元素,下标,原数组)=>{执行内容})
const arr1 = [1, 2, 3]
const newArr = arr1.map((item, index, arr) => {
return item + 1
})
console.log(arr1)
console.log(newArr)
4、includes 包含
- 返回布尔值,判断数组是否包含所检测的元素
语法:arr.includes(检测元素)
const arr1 = [1, 2, 3]
const xxx1 = arr1.includes(1)
console.log(xxx1)
console.log(arr1.includes(4))
5、every 是否每项都满足
const arr1 = [1, 2, 3]
const bol_every = arr1.every((item, index, arr) => {
return item > 0
})
console.log(bol_every)
6、some 是否有一项满足
const arr1 = [1, 2, 3]
const bol_some = arr1.some((item, index, arr) => {
return item < 0
})
console.log(bol_some)
7、indexOf 寻找元素位置
语法:arr.indexOf(元素,开始位置)
const arr1 = [1, 2, 3]
console.log(arr1.indexOf(1))
console.log(arr1.indexOf(1, 1))
8、reduce 累加
语法:const sum = arr.reduce((上一次结果,下一次的值)=>{执行内容},初始值)
const arr1 = [1, 2, 3]
const sum = arr1.reduce((sum, item) => {
return sum + item
}, 0)
console.log(sum)
9、reduceRight 累加(反向)
10、find、findIndex 寻找
语法:const xxx = arr.find((item, index, arr) => {条件})
const arr1 = [1, 2, 3]
const xxx1 = arr1.find((item, index, arr) => {
return item > 1
})
console.log(xxx1)
const xxx2 = arr1.findIndex((item, index, arr) => {
return item > 1
})
console.log(xxx2)
11、concat 合并
const arr1 = [{ a: 1 }, { b: 2 }]
const arr2 = [{ c: 3 }, { d: 4 }]
newArr1 = arr1.concat(arr2)
newArr2 = [...arr1, ...arr2]
console.log(newArr1)
console.log(newArr1)
12、slice 复制
语法:const xxx = arr.slice(开始下标,结束下标[不包含])
const arr1 = [1, 2, 3, { a: 4 }]
const xxx = arr1.slice(3, 4)
console.log(arr1)
console.log(xxx)