join():把数组里的所有内容转换为一个字符串,并用指定的内容分割(默认是逗号分割)
join转换的数组内容都会变成扁平化,无论数组嵌套多少层
let arr = [1, [2, [3, [4, [5, 6]]]]];
arr.join() //"1,2,3,4,5,6"
可见返回的是字符串格式,但是开发中会存在扁平化一个数组的需要,把多个嵌套数组变成一维数组,flat可以
let arr = [1, [2, [3, [4, [5, 6]]]]];
arr.flat(Infinity); //[1, 2, 3, 4, 5, 6]
split():把字符串分割为一个字符串数组,并用指定的内容分割
let str = "1,2,3,4,5,6";
srt.split(','); //["1", "2", "3", "4", "5", "6"]
reduce():
0、数组未空时报错的解决方法=》设置初始值
let demo = [];
demo.reduce(()=>{}, []); //设置初始值为空数组[]
1、求和
let demo2 = [1,2,3,4,5];
demo2.reduce((sum, cuntNum)=>{
sum = sum + cuntNum;
return sum;
}, 0); //15
2、统计每个元素出现的次数
let demo3 = ['a','b','c','a','a','c'];
demo3.reduce((pre, cur)=>{
if(cur in pre){
pre[cur]++;
}else {
pre[cur] = 1;
}
return pre;
}, {});
// {a: 3, b: 1, c: 2}
3、数组去重
4、将二维数组转为一维数组
5、将多维数组转为一维数组
6、对象里的属性求和
includes()