TheSnegok
@TheSnegok

Как разобраться в коде?

var exp = 'hello world'; // входная строка
var expCounts = {}; // обьект количества повторений
var maxKey = ''; // максимальное число
for(var i = 0; i < exp.length; i++) { // перебор строки
    var key = exp[i]; // key ровняется букве которая сейчас по порядку ровняется i 
    if(!expCounts[key]){ 
         expCounts[key] = 0; 
    }
    expCounts[key]++;
    if(maxKey == '' || expCounts[key] > expCounts[maxKey]){ 
        maxKey = key;
    }
}

console.log(maxKey + ": " + expCounts[maxKey]);

jsffidle
Напишите комментарии или дайте ссылку на документацию чтобы понять как в объект добавляются данные, а именно как понять expCounts[key] и почему этот обьект оформляется как буква: количество повторений?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Лучше проще, чем никогда
expCounts.a = 0;

// тоже самое, что и
expCounts['a'] = 0;

// и
let key = 'a';
expCounts[key] = 0;

Можно подставлять название свойства при помощи строки.
Это даёт много гибкости. Причём с помощью строк можно создавать ключи, которые вы никак по-другому не создадите. Например, с дефисом в имени свойства. Вот это - expCounts['user-name'] = 0; сработает.

Вот доки по объектам, советую внимательно проштудировать.
Вот доки про квадратные скобки в частности.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы