1.常见的一些数组操作:
- push
作用:将参数添加到数组的尾部 原数组将会被改变
返回:数组长度
let mya = [2,3,4]
let len = mya.push(8,2,1)
console.log(len); //6
console.log(mya); //[ 2, 3, 4, 8, 2, 1]
- unshifit
作用:将参数添加到数组的头部 原数组将会被改变
返回:数组长度
let mya = [2,3,4]
let len = mya.unshift(8,2,1)
console.log(len); //6
console.log(mya); //[ 8, 2, 1, 2, 3, 4]
- pop
作用:将数组的最后一个尾部元素删除 原数组将会被改变
返回:这个被删除的元素
let mya = [2,3,4]
let len = mya.pop()
console.log(len); //4
console.log(mya); //[2,3]
- shift
作用:将数组的第一个头部元素删除 原数组将会被改变
返回:这个被删除的元素
let mya = [2,3,4]
let len = mya.shift()
console.log(len); //2
console.log(mya); //[3,4]
- slice
作用:截取数组的某一段 原数组不变
返回:这个截取出的数组
let mya = [2,3,4,5,6]
let len1 = mya.slice()
let len2 = mya.slice(1)
let len3 = mya.slice(1,2)
console.log(len1); //[2,3,4,5,6] 参数为空时不截取数组
console.log(len2); //[3,4,5,6] 参数为一个时表示从该索引开始截取(保留该索引及该索引之后的数组)
console.log(len3); //[2] 两个参数,截取到第二个索引(不包括)
- splice
作用:去除数组的某一段 原数组改变
返回:剩余的数组
let mya = [2,3,4,5,6]
let len1 = mya.splice()
let len2 = mya.splice(1)
let len3 = mya.splice(1,2)
console.log(len1); //[] 参数为空,表示没截取,返回空数组,原数组不变
console.log(len2); //[3,4,5,6] 参数为一个时,表示从该索引开始截取(保留该索引及该索引之后的数组)原数组为 [2]
console.log(len3); //[3,4] 两个参数,第二个表示截取了几个参数,原数组为[2,5,6]
- reverse
作用:颠倒数组中元素的顺序 原数组改变
返回:无返回
let mya = [2,3,4,5,6]
let kk = mya.reverse(); //undefined 原数组为[6,5,4,3,2]
- sort
作用:排序 原数组改变
返回:排序后的数组
let mya = [2,3,4,5,6]
let kk = mya.sort(function(a,b){
return a-b; //从小到大
}); //[6,5,4,3,2],与原数组相同
- join
作用:数组转为字符串 原数组不变
返回:字符串
let mya = [2,3,4,5,6]
let kk = mya.join(".") //2.3.4.5.6 用给定的字符串进行连接
- concat
作用:将数组拼接到原数组后面 原数组不变
返回:新数组
let mya = [2,3,4,5,6]
let kk = mya.concat([1,2,3]) //[2,3,4,5,6,1,2,3] 原数组不变
ES5中新增数组方法
- indexOf
作用:获取某个值在数组中出现的索引值
返回:索引
let mya = [2,3,4,5,6]
let index = mya.indexOf(2) //返回0
//找不到返回-1
- forEach
作用:遍历数组,改变原数组
返回:无
let mya = [2,3,4,5,6]
mya.forEach((i,index)=>{
//i 当前元素
//当前索引
})
//注:forEach中不可进行break,continue。因为使用的是回调函数
- map
作用:遍历数组 不改变原数组
创建一个新数组
let mya = [2,3,4,5,6]
mya.map((i,index)=>{
//i 当前元素
//当前索引
return i * 2
})
- filter 推荐有筛选条件(> < )时使用
作用:滤出一些元素组成一个新数组 不改变原数组
let mya = [2,3,4,5,6]
mya.filter((i,index)=>{
return i > 2;
}) //[3,4,5,6]
- some
作用:检测数组中是否有一个满足条件
返回:布尔值
let mya = [2,3,4,5,6]
mya.some((i,index)=>{
return i > 2;
}) //true 有一个满足就为true
- every 与some条件相反
作用:检测数组中是否全部满足条件
返回:布尔值
let mya = [2,3,4,5,6]
mya.every((i,index)=>{
return i > 2;
}) //false
- reduce
作用:对数组中所有值都执行提供的回调函数,并将该函数的返回值作为累计结果,作为下一次调用的参数
返回:累计结果
let mya = [2, 3, 4, 5, 6]
const newmya = mya.reduce((total, i, index) => {
return total + i + index;
})
console.log('mya', mya); // [2, 3, 4, 5, 6]
console.log('newmya', newmya); // 30