2016-12-17 3 views
0

Я занимаюсь своим кодированием, и я все еще новичок. При поиске решений для решения проблем я вижу такой код, который используется в циклах, и мне любопытно, что делает эта строка кода.Что означает эта конкретная строка кода/сделать в Javascript

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); 
+0

Какие конкретные части вы не понимаете? –

+1

Потенциально дубликат [Что делает конструкция x = x || y означает?] (http://stackoverflow.com/q/2802055/218196) –

ответ

0

Это в основном говорит

Если counter[string[i]] является falsy (не определено, 0, пустая строка, нуль и т. Д.) Используйте 0, чтобы добавить к 1, в противном случае используйте его существующее значение для добавления в 1 и добавьте новое значение для counter[string[i]]

Он использует логический оператор ИЛИ ||

См JavaScript OR (||) variable assignment explanation

Смежные вопросы