累计一个字符串中相同字符出现的个数
感觉没问题,但打印结果却是 “1”为什么
大意了,不过能省略return么
return 三目运算算什么。。。,好歹把pre返回了啊。。。
let str = "asdfsdfsadfadf";
let result = [...str].reduce((pre, cur)=>{
pre[cur]?pre[cur]++:pre[cur]=1;
return pre;
},{})
console.log(result)
或者
let str = "asdfsdfsadfadf";
let result = [...str].reduce((pre, cur)=>{
return pre[cur]?pre[cur]++:pre[cur]=1,pre;
},{})
console.log(result)
【以下回答由 GPT 生成】
问题出在代码中的初始值不对,应该初始化为空对象{}而不是1。
修改代码如下所示:
let str = "asdasdadsdsfewre";
let result = [...str].reduce((pre, cur) => {
if(!pre[cur]) {
pre[cur] = 1;
} else {
pre[cur]++;
}
return pre;
}, {});
console.log(result);
修改后的代码会正确计算相同字符出现的个数。
【相关推荐】