数组对象的方法有那些?
es5 : push pop shift unshift splice ……
es6 :find inludes findIndex fill entries keys values flat ……
tips:这些是我自己做的一点笔记,可能不是特别详细(也可能有错,望指正),若想了解的更深入一些,建议查看官网。
- find:返回数组中第一个满足测试条件的元素的值,否则返回undefined
// find
let arr=[3,454,56,67,2];
let found=arr.find(function(el){
if(el>50){
return true
}
})
console.log(found);//454
- includes:判断一个数组中是否包含一个指定的值,如果包含返回true,否则返回false
//includes
let arr=[23,4,5,54];
console.log(arr.includes(4));//true
console.log(arr.includes(3));//false
- findIndex:返回数组中满足测试条件的第一个元素的索引,没有找到则返回-1
// findIndex
let arr=[23,4,5,54];
let findMax=arr.findIndex(function(el){
if(el<20){
return el;
}
})
console.log(findMax);//1
let arr=[23,4,5,54];
let findMax=arr.findIndex(function(el){
if(el<2){
return el;
}
})
console.log(findMax);//-1
- fill: 固定值填充一个数组从起始索引到终止索引内的全部元素,但是不包括终止索引
// fill(value[,start[, end]])
let arr=[23,4,5,54];
console.log(arr.fill("a",2,3));//[23, 4, 'a', 54]
console.log(arr.fill("b",1));//[23, 'b', 'b', 'b']
console.log(arr.fill("c"));//['c', 'c', 'c', 'c']
- entries keys values了解即可
- entries:返回一个新的Array Iterator对象,这个对象包含了数组中的每个索引的键/值对
- keys:返回一个包含数组中每个索引键的Array Iterator对象
- values:返回一个新的 Array Iterator 对象,该对象包含数组每个索引的值
// entrys keys values
let arr=[23,4,5,54];
console.log(arr.entries());
/*
Array Iterator {}
__proto__:Array Iterator
next:ƒ next()
Symbol(Symbol.toStringTag):"Array Iterator"
__proto__:Object
*/
for(let key of arr.keys()){
console.log(key);//0 1 2 3
}
for(let value of arr.values()){
console.log(value);//23 4 5 54
}
- flat:按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回
//flat
let arr=[23,5,[546,656,67,[54,65,5],6],245,63];
console.log(arr.flat());//[23, 5, 546, 656, 67, Array(3), 6, 245, 63]
console.log(arr.flat(2));//[23, 5, 546, 656, 67, 54, 65, 5, 6, 245, 63]