var arr='asfacfagsahvahvxssaaxssxs';
var info = arr
.split('')
.reduce( (p,k) => (p[k]++ || (p[k]=1) ,p ),{});
console.log(info);
三行代码就算出来了? 萌新一脸懵逼
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
关键就是那个
reduce啦,没啥神奇的。reduce里面传入了一个空对象,迭代每个字符的时候,把单个字符作为对象的key一直累加,最后输出这个对象。你可以把它展开,然后单步运行,看看每一步是怎么操作的,这样比较明显,下面就是它展开的样子:
只不过是语法糖多了罢了,实际上就是循环加上计数
字符串分割split('')以及数组的reduce()方法