JS:||在if语句之外

时间:2017-10-16 15:33:22

标签: javascript

我试图理解这段代码(检查字符串是否可以重新排列到回文中):

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声明之内,我们如何使用||? 谢谢!

2 个答案:

答案 0 :(得分:0)

如果letter中的letterCounts处的索引具有假值,则将该索引处的值设置为0

以下是Falsy的MDN文档: https://developer.mozilla.org/en-US/docs/Glossary/Falsy

答案 1 :(得分:0)

如果letterCounts[letter]有值,则会指定该值,否则会指定0