创建数组
1)var list=new Array() 创建对象
2)var list=[] 字面量
数组方法
1)join 将数组以一定的字符串拼接,返回字符串
var x=new Array()
x=[1,2,3,4,5]
console.log(x.join("="));//将数组以 = 练级成字符串1=2=3=4=5
用join实现字符串重复
function link(str,n) {
return new Array(n+1).join(str)
}
console.log(link("456", 2));
先生成一个n+1个长度的空数组,然后每个之间用str连接,最后的形式是[]456[]456[]
2)push():在末尾添加一个元素,返回值为数组的长度 (原数组改变)
x=[1,2,3,4,5]
console.log(x.push(6));//6
console.log(x);//[1,2,3,4,5,6]
3)pop()移除最后一项,返回删除项 (原数组改变)
var y=["zzz","xxx","yyy"]
console.log(y.pop());//yyy
console.log(y);//["zzz","xxx"]
4)shift删除头项 unshift头插入 (原数组改变)
var arr=["som","tom","lily","zzr"]
console.log(arr.shift());//som
console.log(arr);//["tom","lily","zzr"]
var brr=["som","tom","lily","zzr"]
console.log(brr.unshift("aaa"));//5
console.log(brr);//["aaa","som","tom","lily","zzr"]
5)reverse()翻转 (原数组改变)
var z=[1,2,3,4,5]
console.log(z.reverse());//5 4 3 2 1
console.log(z);// 5 4 3 2 1
6)splice 删除数组(元素组改变)
删除 splice(开始下标,长度)
插入 splice(开始下标,0,插入元素)
替换 splice(开始下标,长度,替换元素)
//删除数组 index位置 删除n个
console.log(z.splice(1, 1));//4 返回删除的元素
console.log(z);//5 3 2 1
var arr=[1,2,3,4,5,6,7]
arr.splice(0,0,"zzz")//在0 位置插入 “zzr”
console.log(arr);// zzr 1 2 3 4 5 6 7
var arr=[1,2,3,4,5,6,7]
arr.splice(0,1,"zzr")
console.log(arr);// zzr 2 3 4 5 6 7
7)sort()排序,将数组按照升序排列,内部是将数组元素变成字符串,来比较字符串的 ASCII码值
arrn=[12,5,456,5]
console.log(arrn);
console.log(arrn.sort());// 12 456 5 5
因为按照ASCII码,所以按照第一个元素的大小排序
var shu=["z","a","r","t"]
console.log(shu.sort());// a r t z
sort()中可以传参,来规定排序方法
function compare(a,b) {
if(a.length>b.length){
return 1
}else if(a.length==b.length){
return 0
}else{
return -1
}
}
按照每个元素的长度进行排序
var news=["zzzzzz","bbbbb","a","fff"]
console.log(news.sort(compare));// a fff bbbbb zzzzzz
8)concat 数组拼接(原数组不改变)
var arr=[1,2]
var brr=[4,5]
console.log(arr.concat(brr));//[1,2,4,5]
console.log(arr);//[1,2]
console.log(brr);//[4,5]
9)slice:切割数组,从下标index开始,到第二个元素结束
var arr=[1,2,3,4]
console.log(arr.slice(1));//234
var arr=[1,2,3,4,5,6,7]
console.log(arr.slice(1,5));//2345
10)indexOf ()查找指定位置元素位置
var arr=[1,2,3,4,5,6]
console.log(arr.indexOf(5));//从头查找5 第一次出现的位置 4
var arr=[1,2,5,4,5,6]
console.log(arr.indexOf(5,3))//2
console.log(arr.indexOf(5,3));//4 从3位置开始查找
11)lastOf()从后往前查找元素位置
var arr=[1,2,3,4,5,6,7]
console.log(arr.lastIndexOf(5))//4
console.log(arr.lastIndexOf(5,4));//4 从3位置开始查找
12)forEach遍历数组(没有返回值),回调函数(每一项内容,下标)
var arr=["a","b","c","d","e","f"]
arr.forEach((item,id)=>{
console.log(item, id); // a 0 b 1 c 2 d 4 e 5 f 6
})
13)map()返回每一项执行回调函数后构成的数组
var aarr=arr.map(item=>{
return "111"+item
})
console.log(aarr);//111a 111b 111c 111d 111e 111f
返回数组每一项的平方
var b=[1,2,3,4,5]
var c=b.map(item=>{
return item*item
})
console.log(b);//1 2 3 4 5
console.log(c);// 1 4 9 16 25
14)filter 过滤,遍历每一项,返回满足条件的数组
filter(item,index,arr)遍历的每一个,下标,当前数组
var d=b.filter(x=>{
return x%2!=0 //返回奇数
})
console.log(d);
15)every 数组中的每一项是否都那么足条件,都满足就返回true 不满足就false
var arr=[1,2,3,4,100,41,22]
var flag=arr.every(x=>{
return x<1000//true
})
console.log(flag);
var arr=[1,2,3,4,100,41,22]
var flag=arr.every(x=>{
return x<100//false
})
console.log(flag);
16)some()遍历数组,只要有一个满足条件的值就返回true
var arr=[1,2,3,4,100,41,22]
var flag=arr.some(x=>{
return x<10//true
})
console.log(flag);
17)reduce(pre,cur,index,arry)逐次遍历数组的每一项,得到迭代后的值
var a=[1,2,3,4]
var sum=a.reduce((pre,cur,index,arr)=>{
return pre+cur
})
console.log(sum);//10 数组求和
原数组改变
push pop shift unshift splice reverse sort
原数组不改变
concat join slice
遍历数组方法
forEach 没有返回值
map 返回执行callback的数组
some 有一个元素满足就返回true
every 每一项都满足就返回true
filter 返回满足条件的元素
reduce 迭代遍历,每次可以得到之前的值
纯函数:
1、不改变原数组 2、返回一个数组
concat map filter slice
非纯函数:
push pop shift unshift 数组改变了
foreach some every reduce 返回的不是数组
网友评论