【发布时间】:2018-05-31 14:39:03
【问题描述】:
我对 Javascript 比较陌生,我试图了解 || 在当前代码中的用法。
所以,我在 Javascript 中浏览了这个 amazing article on web about reduce,他写了这个例子
const fruitBasket = ['banana', 'cherry', 'orange', 'apple', 'cherry', 'orange', 'apple', 'banana', 'cherry', 'orange', 'fig' ];
const count = fruitBasket.reduce( (tally, fruit) => {
tally[fruit] = (tally[fruit] || 0) + 1 ;
return tally;
} , {})
count // { banana: 2, cherry: 3, orange: 3, apple: 2, fig: 1 }
[问题]在这里,我无法理解两件事
tally[fruit] = (tally[fruit] || 0) + 1 ;
|| 在这里做什么?他为什么使用它? (我知道这是一个或运算符)
其次,函数末尾的, {}) 是什么意思?
【问题讨论】:
-
如果
tally[fruit]未定义,则回退到 0。{}是累加器,是您的reduce函数开始的基础对象。 -
请有人在他们的回答中提及虚假值,而不是特别提到
undefined或null。它适用于所有虚假值。 -
Array.prototype.reduce接受两个参数。第一个是一个函数,第二个是一个初始值,它将接收来自reduce函数的值。||是一个或运算符。所以这里是说如果tally[fruit] 不存在+ 1 如果它存在则将1 添加到当前值。 -
++ 用于使用 reduce。现在您知道如何使用 reduce,您可以忘记所有其他数组方法
标签: javascript