当前位置: 首页 > Web前端 > vue.js

你所不知道的js数组常用方法

时间:2023-03-31 15:46:51 vue.js

js数组常用方法解析数组也是对象数据类型,也是由键值对组成的varary=[12,23,34];一维数组/**结构*0:12*1:23*2:34*length:3*/1.以数字作为索引(属性名),索引从0开始递增。2.有一个length属性,存放的是数组的长度ary[0]获取第一项ary[ary.length-1]获取最后一项数组中每一项的值可以是任意数据类型//多维数组varary=[{name:'xxx',age:20};{姓名:'xxx',年龄:20}];数组中常用的方法按照四个维度记忆:方法的函数方法的参数-方法的返回值是否改变原数组push函数:在数组末尾添加新内容参数:添加的内容(可以是一个或多个)返回值:新数组改变原数组的长度varary=[12,23,34];阿里推(100);=>4ary:[12,23,34,100]ary.push(100,222,{name:'xx',age:200});=>10ary:[12,23,34,100,100,222,0.1,100,222,{name:"xx",age:200}]pop函数:删除数组中的最后一项参数:无返回value:删除项改变原数组varary=[12,23,34];阿里。pop()=>34//delete34ary:[12,23]shift函数:删除数组第一项参数:无返回值:删除项改变原数组varary=[12,23,34];ary.shift()=>12//delete12ary:[23,34]unshift函数:在数组开头添加新内容参数:要添加的内容返回值:添加数组后数组的原长度变化varary=[12,23,34];ary.unshift(2,null)=>5//增加2项2,nullary:[2,null,12,23,34]splice可以根据splice对数组进行很多操作:删除指定处的内容position,add在数组的指定位置添加内容,修改指定位置的信息修改`delete:ary.splice(n,m)`n表示从索引n开始删除m个内容,返回删除的部分作为新数组,将原数组改成varary=[12,23,34,45,56,67,78,89];ary.splice(2,3)=>delete[34,45,56]//2表示从第二个数开始,3表示删除第2个之后的3个数。=>ary:[12,23,67,78,89]ary.splice(2)=>删除第二次删除后的所有数字[34,45,56,67,78,89];//如果不知道`ary(n,m)`n表示从第n个数开始,m表示删除第n个数之后的m个数。如果不指定m,或者删除次数大于最大长度,则删除到数组末尾。新增:ary.splice(n,0,x,...)从索引n中删除零项(未删除),并在数组varary=中存储x或更多要插入索引N的“前面”的内容[12,23,34,45,56,67,78,89];ary.splice(3,0,111,1111,222,222,null);=>0//因为没有一项被删除,所以返回空数组ary=>[12,23,34,111,1111,222,222,null,45,56,67,78,89]修改:ary.splice(n,m,x,...)修改的原理把原来的内容删掉,然后用新的内容替换这部分信息varary=[12,23,34,45,56,67,78,89];ary.splice(2,3,8888)//从第二项开始,删除3项,然后替换成888ary=>[12,23,8888,67,78,89]需要展开删除的数组的最后一项,你有多少种方法?2.你有多少种方法可以将新内容追加到数组的末尾?//=>删除最后一项ary.pop()ary.splice(ary.length-1)ary.length--//=>追加新内容到数组末尾ary.push(100)ary.splice(ary.length,0,100)ary[ary.length]=100deleteary[ary.length-1]不推荐使用delete删除数组中的某一项。虽然内容没有了,但是数组的长度并没有变。=>ary:[12,23,34,45,empty]slice函数:在一个数组中,根据条件找出部分内容参数:n,m,从索引n开始,查找索引m,但不包括米。(查找从n开始的m-n个数)返回:用一个新数组存放查找到的内容,原数组不变varary=[12,23,34,45,56,67,78,89,90];ary.slice(2,7)(5)[34,45,56,67,78]ary[12,23,34,45,56,67,78,89]ary()andary(0)//全部取整个数据,类似浅拷贝——实现数组的克隆,与原数组内容相同,但堆内存空间不同,两个数组不相等且独立ary(-3,-1)//从末尾的倒数第三项开始,从后面取-3+(-1)项ary(2)//如果m不写,就找数组的末尾concat函数:实现的拼接多个数组(或值)或值返回:拼接后的新数组原数组不变varary1=[12,23];变量ary2=[100,200];varary3=[1000,2000];ary1.concat(ary1,'前端',ary3)=>ary1.concat(ary1,'前端',ary3)(7)[12,23,12,23,"前端",1000,2000]=>[].concat(ary2,ary1,'Frontend',ary3)//可以从空数组开始拼接,括号内排列拼接顺序,空数组不会占内容的位置(7)[100,200,200,12,23,"Front",1000,2000]toString功能:将数组转为字符串参数:无返回值:数组中的每一项用逗号分隔原数组不变varary=[12,23];ary.toString=>"12,23"join功能:和toString类似,也是将数组转为字符串,但是我们可以设置为字符串,在每一项之间参数:无返回:数组中的每一项是用逗号分隔原数组不变varary=[12,23,34,45];ary.join=>"12,23,34,45"ary.join('+')=>"12,23,34,45"eval(ary.join('+'))=>114基于join,可以实现数组中每一项的求和功能1、基于join,以+为分隔符,先将数组转为字符串,用于每一项相加2、基于eval,将字符串转为js表达式执行,得到的结果为中每一项的累加array和reverse的作用:将数组倒序排序参数:无返回:排序后新数组原数组变化varary=[12,23,45];ary.reverse()[45,23,12]sort函数:数组排序参数:无/函数返回:排序后的新数组原数组变化varary=[12,23,67,78,45];ary.sort()=>[12,23,45,67,78]//=>sort只能处理10以内的数字进行排序,不传参varary=[18,1,2,34,5,56]ary.sort=>[1,18,2,34,5,56]//并不是我们想象的那样排序//=>在实际项目中,基于sort排序,需要传参varary=[18,1,2,34,5,56];ary.sort(function(a,b){returna-b;//=>升序returnb-a;//=>降序})例如:varary=[18,1,2,34,5,56]undefined//传参ary.sort(function(a,b){returna-b;//升序})(6)[1,2,5,18,34,56]ary.sort(function(a,b){returnb-a;//降序})(6)[56,34,18,5,2,1]indexOf/lastIndexOf这两个方法不兼容低版本的ie浏览器(ie6~8)功能:检测当前值在数组中的第一次或最后一次出现未知索引参数:待检测值返回:索引原数组不变varary=[18,1,2,34,5,56]ary。indexOf(34)//有34个,index为33ary.indexOf(100)//没有100,所以index为-1-1//根据indexOf检测,如果里面有这个item数组,返回一个大于0的索引,如果没有该项,返回结果为-1//=>检查数组中是否包含一项if(ary.indexOf(100)>-1){//=>ARY包含第100项}除了上面的方法,数组还包含很多常用的方法:(Array.prototype)everyfilterfindforEachincludeskeysmapreduce/reduceRightsome...