请考虑这个JS函数javascript数组中的重复项
我看过这个similar问题,但无法理解。
function a (ResultArray){
var counts={};
for (p = 0; p < ResultArray.length; p++){
counts[ResultArray[p]] = (counts[ResultArray[p]] + 1) || 1;
}
return counts;
}
var arr = ["a","b","c","d","a","b","e"];
var res = new a(arr);
console.log(res)
其工作的罚款,并给予计数。我需要了解它是如何给予计数的,特别是(counts[ResultArray[p]] + 1) || 1;
部分。什么是+1
和||
在做什么。
它看起来像它试图增加特定键的值,然后如果失败(因为键不存在),它将它设置为'1'。 ---老实说,这是一段很奇怪的代码。 – byxor
'+ 1'为'counts [ResultArray [p]]加1,'||'为真验证:如果'counts [ResultArray [p]] + 1'为'NaN,undefined,null或0 '表达式将评估为'1'请参阅[this](https:// stackoverflow。com/questions/476436/is-there-a-null-coalescing-operator-in-javascript)post更详细 –
@Patrick Barr,那就是我想要理解的是什么,它是通过加1实现的,还是什么它通过加1.检查它是否检查下一个值?如果是这样,那么它如何跟踪以前找到的值,然后递增它们。它对我来说太令人困惑了 – user1207289