之前使用过reduce方法,但没有总结过,今天想要总结一下,迭代不止有for循环,for循环是最基本的用法
var arr = 'adfsdddsssa';
var result = arr.split('').reduce(function(res, cur) {
res[cur] ? res[cur]++ : res[cur] = 1;
return res;
}, {})
console.log(result)
打印出来的结果
我们在第二个参数里初始化了回调函数的第一个值和类型,将字符串转化为数组,再对数组中的每一个对象出现的次数进行遍历,遍历出来的每一项作为第二次参数。
由于第二个参数可以设置叠加类型的值,那么,就可以灵活的运用它做各种类型的转换,可以将一个字符串转化为一组数组,也可以把一个数组转换为另外一个数组
eg:
[1,2].reduce(function(res,cur) {
res.push(cur + 1)
return res;
},[])
打印出来的结果:
[2,3]