2019-12-15
这是一期分享常用数组使用的方法解析。
关于常用数组的方法有如下:for,forEach,find,findIndex,indexOf,map,pop,push,shift,unshift,splice,slice,indludes,
for
let sum=0
for(let i=0;i<10;i++>){
sum+=i;
}
foreach
包含2个参数item和index
let list=[1,2,3,4];
let sum=0;
list.forEach((item,index)=>{
sum+=item
})
find
表示在数组中查找某个值,返回值是匹配上的那一条数据
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let data=list.find((item,index)=>{
return item.age==2
})
//返回的是{name:'b',age:2}这个对象
findIndex
跟find
类似,返回值是匹配上的那一条数据的index值
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let index=list.findIndex((item,index)=>{
return item.age==2
})
//返回的是{name:'b',age:2}这个对象所在的index,是1
indexOf
跟findOf
类似,都是查找位置
indexOf(item,start),start为初始位置,默认为0
let list=['a','b','c','d']
let index=list.indexOf('a');
//返回的是所在的index,是0
map
,对某项进行操作,并返回对应的数组,不会更改原数组
map((item,index,arr)=>{}),arr表示原数组
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let array = list.map((item,index,arr)=>{
return item.age*10
})
//理想状态是[{name:'a',age:10},{name:'b',age:20},{name:'c',age:30}]
//实际是[10,20,30]
pop
删除数组的项,从数组的最后一项开始删除
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let array = list.pop();
//返回[{name:'a',age:1},{name:'b',age:2}]
push
新增数据的项,从数组最后一项开始增加
push(item1,item2),可以在数组末尾增加多个item
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let array = list.push({name:'d',age:4});
//返回[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3},{name:'d',age:4}]
shift
是把数组的第一项移除
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let array = list.shift()
//返回[{name:'b',age:2},{name:'c',age:3}]
unshift
是向数组的开头新增对象,可增加多个item
let list=[{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
let array = list.unshift({name:'a0',age:0})
//返回[{name:'a0',age:0},{name:'a',age:1},{name:'b',age:2},{name:'c',age:3}]
splice
功能强大,可增,可删,可编辑。但会改变原数组
splice(index,howmany,item1,item2);index表示增加/删除的位置,howmany表示要删除的数量,为0表示不删除,item1,item2表示要新增的数据
增:
let arr=arr.splice(1,0,item1);
//从数组的第2个位置开始增加新数据
删:
let arr=arr.splice(1,1);
//从数组的第2个位置删除1个数据
编辑:
let arr=arr.splice(1,1,item1);
//将数组中的第二个位置替换成item1,也可以理解为将第二个位置的数据删除,将后面的数据补充上
slice
从原数组中截取一段,不改变原数组
slice(start,end);
//从start开始,到end结束,含start,不含end
let arr1=arr.slice(1,3);
//将arr截取位置1,位置2的数据
indludes
表示一个数组是否包含某个值,返回true/false
let arr=[1,2,3];
let index=arr.includes(1);
//true