I'm trying to understand this code (check whether a string can be re-arranged to a palindrome) :
function canRearrangeToPalindrome(str){
var letterCounts = {};
var letter;
var palindromeSum = 0;
for (var i = 0; i < str.length; i++) {
letter = str[i];
letterCounts[letter] = letterCounts[letter] || 0;
letterCounts[letter]++;
}
for (var letterCount in letterCounts) {
palindromeSum += letterCounts[letterCount] % 2;
}
return palindromeSum < 2;
}
Could you explain line letterCounts[letter] = letterCounts[letter] || 0;
It's outside of if
statement, how can we use ||
?
Thank you!