今天看到javascript的函数式编程的一篇文章,讲的是用reduce这个函数统计一个字符串中各字母出现的次数,代码如下:`var res = str.split('')
.reduce((pre, cur) => (pre[cur]++ || (pre[cur] = 1), pre), {})`然后我不知道上式中箭头函数的右边部分中的pre是什么意思,箭头函数右边不就是要返回的表达式吗,为什么上面上面的式子里面还多了个pre?然后我试着改写了一下:
var res = str.split('')
.reduce(function(pre,cur){ console.log(pre) ;
console.log(cur) ; if( pre[cur] === 1)
{
pre[cur]++;
} else
pre[cur] = 1;
}, {});结果报错为:
if( pre[cur] === 1) ^ TypeError: Cannot read property 'd' of undefined
为什么会报这样的错?
谁能回答下这两个问题吗??感激不尽。百度谷歌了好久都找不到答案。。
天涯尽头无女友
胡子哥哥
随时随地看视频慕课网APP
相关分类