数组常用的一些方法
数组的常用方法,如增加元素删除元素
1.连接数组:concat()
let arr = [10,20,30,40]
let arr1 = arr.concat([50,60,70])
console.log(arr1) //打印得到[10,20,30,40,50,60,70]
//这个方法可以使两个或是多个数组连接起来,返回一个新数组
//原数组不会发生变化
2.将数组所有元素拼接成字符串:join(‘分隔符’)
let arr = [10,20,30,40]
let arr1 = arr.join() //括号内为空默认以‘,’拼接
console.log(arr1) //打印得到 10,20,30,40
let arr2 = arr.join('|') //以引号内字符拼接
console.log(arr2) //打印得到 10|20|30|40
//原数组不会发生变化
3.翻转数组:reverse()
let arr = [10,20,30,40]
let arr1 = arr.reverse() //得到一个翻转的新数组
console.log(arr1) //打印得到 [40,30,20,10]
//原数组不会发生变化
4.数组排序 :sort()
let arr = [10,20,30,40,0,5]
arr.sort(function(a,b){
return a-b //从小到大排序
})
console.log(arr) //打印得到 [0,5,10,20,30,40]
arr.sort(function(a,b){
return b-a //从大到小排序
})
console.log(arr) //打印得到 [40,30,20,10,5,0]
5.批量查询数组元素:slice()
let arr = [10,20,30,40]
// arr.slice(start,end)
// start<= 范围 <end
let arr1 = arr.slice(2,4) // 2<= 范围 <4
console.log(arr1) //打印得到 [30,40]
6.删除数组最后一个元素:pop()
let arr = [10,20,30,40]
arr.pop()
console.log(arr) //打印得到[10,20,30]
7.给数组后面添加元素:push()
let arr = [10,20,30,40]
arr.push(50) //如果要传多个元素则括号内用','号隔开
console.log(arr) //打印得到[10,20,30,40,50]
8.删除数组第一个元素:shift()
let arr = [10,20,30,40]
arr.shift()
console.log(arr) //打印得到[20,30,40]
9.给数组开头添加元素:unshift()
let arr = [10,20,30,40]
arr.unshift(0) //如果要传多个元素则括号内用','号隔开
console.log(arr) //打印得到[0,10,20,30,40]
10.检测数组元素位置:indexOf()
let arr = [10,20,30,40]
arr.indexOf(10) //数组中有该元素则返回元素第一次出现下标
arr.indexOf(0) //数组中没有该元素则返回-1
11.数组去重
let arr = [10,20,30,10,20,40,30]
let arr1 = [...new Set(arr)]
console.log(arr1) //打印得到[10,20,30,40]
12.遍历数组
12.1: forEach
// 遍历数组,把遍历出来的每一项交给回调函数.
// 中间不会停下来.
// 没有返回值.
let arr = [10,20,30,40,50]
arr.forEach((v,i)=>{
console.log(v) //遍历出来的每一个元素
console.log(i) //遍历出来每一个元素对应得下标
})
12.2: map
// 遍历数组的,把遍历出来的每一项交给回调函数
// 中间不能停下来.
// 有返回值,返回值是: 返回的内容组成的新数组.
let arr = [10,20,30,40,50];
let res = arr.map((v,ii)=>{
console.log(v); //遍历出来的每一个元素
console.log(i); //遍历出来的每一个元素对应的下标
return v*2;
});
console.log(res); //打印得到 [20,40,60,80,100]
12.3 : filter
// 遍历数组的.把遍历出来的每一个元素交给回调函数
// 有返回值,返回值是: 如果当前return为true,那就以当前遍历项组成的元素新数组.
// let arr = [10,21,30,41,50];
// let res = arr.filter((v,i)=>{
// //console.log(v);//遍历出来的每一个元素
// //console.log(i);//遍历出来的每一个元素对应的下标
// return v%2==0; //表达式为true则当前遍历项组成新数组
// });
// console.log(res); //打印得到[10,30,50]
13.数组降维
二维数组降维成一维数组
二维数组:数组的元素又是一个数组
let arr1 = [10,20,[30,40,50],60];
let newArr = []
arr.forEach((v,i)=>{
//判断数组中元素是不是一个数组,如果是数组则展开加入新数组中
//不是数组则直接加入新数组
if(Array.isArray(arr1[i])){
newArr.push(...arr1[i])
}else {
newArr.push(arr1[i])
}
})
console.log(newArr) //打印得到 [10,20,30,40,50,60]
let arr2 = [[10,20,30],[40],[50,60]]
let newArr2 = []
arr2.forEach(v=>{
newArr2.push(...v)
})
conlose.log(newArr2) //打印得到 [10,20,30,40,50,60]