代码之家  ›  专栏  ›  技术社区  ›  Present practice

JS:| |在if语句之外[重复]

  •  0
  • Present practice  · 技术社区  · 8 年前

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

    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 回复  |  直到 8 年前
        1
  •  0
  •   Tom O.    8 年前

    如果索引位于 letter 在里面 letterCounts 具有falsy值,然后将该索引处的值设置为 0

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

        2
  •  0
  •   Kenji Mukai    8 年前

    如果 letterCounts[letter] 有一个值,它将分配该值,否则它将分配 0 .