reduce()
方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
//语法
arr.reduce(function (prev, cur, index, arr) {
...
}, init);
/*
其中,
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。
*/
在没有初始值的空数组上调用 reduce 将报错。
关于reduce(),推荐你可以看一下这个博主写的(地址:https://www.jianshu.com/p/541b84c9df90)
concat()
方法用于合并两个或多个数组,适用单层数组嵌套的深拷。此方法不会改变原数组,而是返回一个新数组。
//浅拷贝
let test = [1, 2];
let test2 = [33, 44];
console.log(test.concat(test2));//[1,2,33,44]
结合前两个知识点,拔高题:
let test = [[0, 1], [2, 3]].reduce(
(acc, cur) => {
return acc.concat(cur);
},
[1, 2]
);
console.log(test);//[1, 2, 0, 1, 2, 3]
slice()
方法返回一个新的数组对象,这一对象是一个由 begin
和 end
决定的原数组的浅拷贝(包括 begin
,不包括end
)。原始数组不会被改变。
(备注:还有一个方法是截取字符串的,substring();了解地址:https://www.w3school.com.cn/js/jsref_substring.asp)
let arr = [1, 2, 3, 4, 11, 22, 33, 44];
//现在你想获取arr数组1元素后面的全部元素
console.log(arr.slice(1));//[2, 3, 4, 11, 22, 33, 44]
//现在你想获取数组[4,11]
console.log(arr.slice(3,5));//[4, 11]
join()
方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。不改变原数组。
let arr = [1, 2, 3, 4, 11, 22, 33, 44];
console.log(arr.join('-'));//1-2-3-4-11-22-33-44
console.log(arr.join('!'));//1!2!3!4!11!22!33!44
https://mp.csdn.net/postedit/100085477
split()
方法使用指定的分隔符字符串将一个String
对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。
let arr = [1, 2, 3, 4, 11, 22, 33, 44];
let arr1 = arr.join('-');
console.log(arr1.split('-'));//["1", "2", "3", "4", "11", "22", "33", "44"]