請考慮這個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