js数组操作方法
数组:
常见的一些数组操作:
push、pop、unshift、shift
slice不改变原数组,获取截取出的数组、splice改变原数组,获取截取后的原数组
join、 sort、concat、reverse
ES5中新增:
indexOf 、reduce
forEach不生成新数组,在原数组上更改
map、filter 都可以生成新数组,但filter适合条件语句筛选,map适合对数组进行统一操作
some、every
-
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] mya.reduce((total,i,index)=>{ return total+i+index; }) //返回所有index和元素的和,total是累计结果
Vue中封装的对data数组类型更新的方法
通过普通方法对数组数据进行添加,不会同步更新到视图当中
this.list[2] = {id:3,text:'ddd'}
1、以下方法都可以对数组数据进行操作,更新到视图上
- pop 删除末项
- push 添加一项
- shift 删除第一项
- unshift 添加第一项
- splice 截取/修改/删除数组元素
- sort 对数组排序
- reverse 取反
2、可以通过修改数组引用让vue监听到数组变化
this.list = []
3、通过Vue的set方法进行修改
this.$set(this.list,0,{xxxx:'xxxx'}) //在list[0] 修改
此处可以是对象或数组
标签:返回,console,log,操作方法,js,let,数组,mya
From: https://www.cnblogs.com/ioname/p/16813113.html