这个特定代码行在Javascript中的意思/作用是什么

时间:2016-12-17 23:07:00

标签: javascript loops object

我正在练习编码,而且我还有点新意。在寻找实践问题的解决方案时,我看到循环中使用的这种代码,我很好奇这行代码的作用。

counter[string[i]] = (counter[string[i]] || 0) + 1; 

这里是完整的代码,用于计算字符串中最有效的字符,如果这有帮助

var string  = "355385",
    counter = {};

for (var i = 0, len = string.length; i < len; i += 1) {
    counter[string[i]] = (counter[string[i]] || 0) + 1;
}

var biggest = -1, number;
for (var key in counter) {
    if (counter[key] > biggest) {
        biggest = counter[key];
        number = key;
    }
}

console.log(number);

1 个答案:

答案 0 :(得分:0)

基本上是在说

如果counter[string[i]]是假的(未定义,0,空字符串,null等),请使用0添加到1,否则使用其现有值添加到1并使此添加成为counter[string[i]]

的新值

它正在使用逻辑OR运算符||

请参阅JavaScript OR (||) variable assignment explanation