1.reduce
(1)reduce的使用方法:reduce(func,first)
func是一个函数,会传入四个参数,function(prev,cur,index,arr)
prev是上一次迭代后的函数返回值,在第一次迭代之前是reduce传入的第二个参数,如果没有这个参数,那么就是默认为数组的第一个元素
cur是执行当前迭代的元素
index是当前迭代元素的下标
arr是执行这个reduce方法的数组
first是第一次迭代的时候prev值的大小
(2)举例
let arr = [1, 2, 3, 4];
let sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
let arr = [1, 2, 3, 4];
let sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
},5)
console.log(arr, sum);
(3)应用
计算每个元素出现次数
let arr = ['name','age','long','short','long','name','name']
let arrResult = arr.reduce((pre,cur) =>{
console.log(pre,cur)
if(cur in pre){
pre[cur]++
}else{
pre[cur] = 1
}
return pre
},{})
console.log(arrResult)//结果:{name: 3, age: 1, long: 2, short: 1}
去重
let arrResult = arr.reduce((pre,cur) =>{
if(!pre.includes(cur)){
pre.push(cur)
}
return pre;
},[])
console.log(arrResult)//结果:["name", "age", "long", "short"]
2.map
此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组
3.forEach
与map类似,但是不会返回新数组,而是会修改原数组
4.filter
此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回,传入的函数参数返回的是布尔值
5.every
此方法是将所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回true,否则为false
6.some
此方法是将所有元素进行判断返回一个布尔值,如果存在元素都满足判断条件,则返回true,若所有元素都不满足判断条件,则返回false
7.push,pop,shift,unshift,isArray,toString
push:向数组末尾添加元素
pop:把数组末尾元素删除
shift:删除数组的第一个元素
unshift:将一个或者多个元素添加到数组前面,返回新长度
isArray:判断是不是数组
concat:将多个数组拼接成数组
toString:将数组转化为字符串
8.join
可以将数组转化为字符串,但是传入的字符串参数会成为数组字符串之间的间隔
9.splice(start,num,instead)
start:开始的下标
num:删除的个数
instead:替换的元素