var arr=Array.of(10,20,30)//Array.of(10)
var arr2=new Array(10)
console.log(arr,arr2)
新功能1:
of()
功能:设置数组长度
如果参数只有一个就是数组的长度,如果是多个,那数组的长度就是元素的个数
新功能2:
from()
功能:转换为数组
参数是要转换为数组的数据在前面arr-map-set中常见
let arr = Array.from({
0: '1',
1: '2',
2: 3,
length: 3
});
console.log(arr); // ['1', '2', 3]
注意如果是用对象来数组
对象的key要转换为数组的下标
var arr=[10,203,400,2,3,5,6]
var re=arr.find(function(el){
console.log(111)
if(el>100){return true}
})
新功能3:
find()
功能:查找
通过遍历查询条件 知道找到就停止 返回找到的值
var arr=[1,23,5,56,{name:"bob"}]
var re=arr.includes({name:"bob"})
console.log(re)
新功能4:
includes()
功能:是否含有
返回一个布尔值,虽然两个对象内容一样但不是同一个引用,所以返回false
var arr=[10,30,50]
var re=arr.findIndex(function(el){
if(el>20){return true}
})
console.log(re)
新功能5:
findIndex()
功能找到元素并且返回下标 和find类似不过返回值是数组中元素的下标
var arr=[10,203,4,100,3004,5]
var arr2=arr.fill("hello",2,4)//2 3
console.log(arr,arr2,arr==arr2)
新功能6:
fill()
功能:替换
第一个参数是替换的元素,第二个是替换的起始位置,第三个是替换的终止位置但是是左闭右开区间 实际是终止位置-1
var arr=[[10,20,30],40,50,[[60,70],80,[90,[110],100]]]
var arr2=arr.flat(3)
console.log(arr2)
新功能7:
flat()
功能:数组降维
参数是表示的是降维的次数
如何自己创建方法实现flat功能
var arr=[[10,20,30],40,50,[[60,70],80,[90,[110],100]]]
Array.prototype.myflat=function(count=Infinity){
var arr=[]
for(var i=0;i<this.length;i++){
// arr.push(this[i])
if(this[i].constructor==Array&&count>0){
// for(var j=0;j<this[i].length;j++){
// arr.push(this[i][j])
// }
var newarr=this[i].myflat(count-1)
for(var j=0;j<newarr.length;j++){
arr.push(newarr[j])
}
}else{
arr.push(this[i])
}
}
return arr
}
var re2=arr.myflat(1)
console.log(re2)