于是,我开始尝试使用reduce()方法,并且我意识到我可以将一个对象作为该方法的第一个元素传入。我看到了一些例子,这是其中之一。
const arr = ['y', 'n', 'y', 'y', 'n'];
let test = arr2.reduce((sum, val) => {
sum[val] = (sum[val] || 0) + 1;
console.log('sum of val', sum[val], 'value', val)
return sum;
}, {})
我加了一个控制台日志,以便看到发生了什么,但我无法弄清楚。这个方法是如何知道的?它如何将该值(即n或y)添加到对象中,并跟随它在数组中添加相同元素存在的总和。例如,当数组中有20个y时,如何使该总和变为{y: 20}。
我对此感到困惑,起初它似乎很简单,但我想它并不简单。
.reduce()
还是sum[val] = (sum[val] || 0) + 1
的工作原理? - Andreas