JS数组常用方法
1.concat
连接两个字符串
const arr = [1,2]
const arr2 = [3]
console.log(arr.concat(arr2)) //1,2,3
2.join
将数组转成字符串
const arr = [1,2]
const arr3 = arr.join('-')
console.log(arr3) //1-2
3.push & unshift
往数组最后或者开头添加一个或多个元素
const arr = [1, 2]
arr.push(4)
console.log(arr) //[1, 2, 4]
arr.unshift(9)
console.log(arr) //[9, 1, 2, 4]
4.shift & pop
删除数组第一个或最后一个元素
console.log(arr) //[9, 1, 2, 4]
arr.pop()
console.log(arr) //[9, 1, 2]
arr.shift()
console.log(arr) [1, 2]
5.sort
根据手动创建规则进行排序
console.log(arr) //[9, 1, 2, 4]
console.log(arr.sort()) //[1, 2, 4, 9]
console.log(arr.sort((a,b)=>(b-a))) //[9, 4, 2, 1]
6.reverse
反转数组
console.log(arr) //[9, 1, 2, 4]
console.log(arr.reverse()) // [4, 2, 1, 9]
7.slice
截取数组,arr.slice(start,end) 从start到end
const arr5 = [1,3,4,5,6]
console.log(arr5.slice(1)) //从arr[1]到最后 [3, 4, 5, 6]
console.log(arr5.slice(2,3)) //(arr[2]-arr[3]) [4]
console.log(arr5.slice(-1)) // arr[length-1] [6]
console.log(arr5.slice(-3)) // 倒数3个元素 [4,5,6]
8.splice
更新数组,向数组添加或删除元素, arr.splice(index,count,[option]) 从index开始,分割count为删除个数,option可选,向原数组添加值
const arr5 = [1,3,4,5,6]
console.log(arr5.splice(2,1)) //4
console.log(arr5) //[1, 3, 5, 6]
console.log(arr5.splice(2,2)) //[5, 6]
console.log(arr5) //[1, 3]
arr5.splice(1,0,6)
console.log(arr5) //[1, 6, 3]
9.indexOf() & lastIndexOf()
从开头或者结尾开始查找 返回对应下表,没找到返回-1 indexOf(item,start)
const arr6 = [1,2,3,4,5,6]
console.log(arr6.indexOf(6,0)) //2
console.log(arr6.indexOf(3,3)) //-1
console.log(arr6.lastIndexOf(4,0)) //-1
console.log(arr6.lastIndexOf(4,3)) //3
10. find() & findIndex()
find(item,index) 返回第一个符合要求的值,没有符合值返回-1
findIndex(item,index) 返回第一个满足条件的值的索引值 没有返回-1
const arr6 = [1,2,3,4,5,6]
const findarr1 = arr6.find((item,index)=>{
return item>3
})
const findarr2 = arr6.find((item,index)=>{
return item>7
})
console.log(findarr1) //4
console.log(findarr2) //undefined
const findarr3 = arr6.findIndex((item,index)=>{
return item>3
})
const findarr4 = arr6.findIndex((item,index)=>{
return item>6
})
console.log(findarr3) //3
console.log(findarr4) //-1
11.forEach()
遍历数组
const arr7 = [1,2,3,4,5,6]
arr7.forEach((item,index)=>{
console.log(item) //1,2,3,4,5,6 自动换行
})
12 map()
映射,处理数组中的值并返回一个新数组
const arr7 = [1,2,3,4,5,6]
const arr8 = arr7.map(item=>{
return item*10
})
console.log(arr8) // [10, 20, 30, 40, 50, 60]
13. filter()
过滤,操作数组选出所需要的值
const arr7 = [1,2,3,4,5,6]
const arr9 = arr7.filter(item=>item%2)
console.log(arr9) //[1, 3, 5]
14.some()、every()
数组中某一项满足条件就返回true
数组中所有项均满足条件返回true
const arr7 = [1,2,3,4,5,6]
arrsome1 = arr7.some(item=>item>1)
arrsome2 = arr7.some(item=>item>7)
console.log(arrsome1) //true
console.log(arrsome2) //false
arrevery1 = arr7.every(item=>item>0)
arrevery2 = arr7.every(item=>item>2)
console.log(arrevery1) //true
console.log(arrevery2) //false 存在数不大于2
13. keys()、values()、entries()
keys 对键名进行遍历
values对键值进行遍历
entries遍历键值对
const arr1 = [1,2,3,4,5,7]
for(let i of arr1.keys()){
console.log(i) //0,1,2,3,4,5
}
for(let i of arr1.values()){
console.log(i) //1,2,3,4,5,7
}
for(let i of arr1.entries()){
console.log(i)
}
// [ 0, 1 ]
// [ 1, 2 ]
// [ 2, 3 ]
// [ 3, 4 ]
// [ 4, 5 ]
// [ 5, 7 ]
14. includes()
查看数组中是否包含某个值
let arr = [1,2,3,4]
console.log(arr.includes(1)) //true
console.log(arr.includes(5)) //false