我试图理解这段代码(检查字符串是否可以重新排列到回文中):
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;
}
你能否解释一下letterCounts[letter] = letterCounts[letter] || 0;
行
它不在if
声明之内,我们如何使用||
?
谢谢!
答案 0 :(得分:0)
如果letter
中的letterCounts
处的索引具有假值,则将该索引处的值设置为0
以下是Falsy的MDN文档: https://developer.mozilla.org/en-US/docs/Glossary/Falsy
答案 1 :(得分:0)
如果letterCounts[letter]
有值,则会指定该值,否则会指定0
。