数组对象的方法
数组扁平化不是一个具体的方法,而是通过具体的方法来达成的效果
let arr = [
["哈哈",18],
["哈哈",18],
["哈哈",18],
["哈哈",18],
["哈哈",18,["哈哈",17,["哈哈",18]]]
];
arr = arr.flat(3);
console.log(arr);// ["哈哈", 18, "哈哈", 18, "哈哈", 18, "哈哈", 18, "哈哈", 18, "哈哈", 17, "哈哈", 18]
console.log(arr.flat(Infinity));
flat(): 将多层数据,处理成一层
参数: 处理层数
未知层数的情况下: infinity–无限
flatMap(): 处理扁平化数组
因为它只能处理一层数组
arr = arr.flat(Infinity);
//使用flat()处理为一层后,再使用filter()过滤,会无法找到
console.log(arr);
let newArr = arr.flatMap((item,index)=>{
item = item.filter((item,index)=>{
return index == 0;
});
return item;
});
console.log(newArr);// ["哈哈","哈哈","哈哈","哈哈","哈哈"]
// let ageArr = arr.flatMap((item,index)=>{
item = item.filter((item,index)=>{
// if(index == 1){
// return item;
// }else{
// return;
// }
return index == 1;
});
return item;
});
console.log(ageArr);[18,18,18,18,18]
数组 find()方法: 返回第一个满足条件的值
let arr_two = [1,2,3,4,5];
let val = arr_two.find((item,index)=>{
if(item > 1){
return true;
}
})
console.log(val)//1
简写的方式
let val = arr_two.find(item=>item>3);
console.log(val);//4
findIndex(): 返回第一个满足条件的值 的索引(下标)
fill() : 向指定数组填充指定的数据,覆盖原有数据。 覆盖的范围可以控制,默认是全部
let arr_three = ["a","b","c","d","e","f","g","z"];
arr_three = arr_three.fill("v",1,4); // 位置: 包头 不包尾
console.log(arr_three);// ["a", "v", "v", "v", "e", "f", "g", "z"]
includes(): 判断是否包含一个指定的值
参数1:指定的值
参数2:指定位置(从指定的位置之后,开始查找)
console.log(arr_three.includes("v",3)); //true