Marko Djordjevic Ответов: 2

Что представляет собой freq [character]++? Спасибо


Я знаю, что это простой ответ, но не могу понять, что это за freq[caracter]? И как его можно увеличить, если это строка. Пожалуйста, будьте подробны

Что я уже пробовал:

функция getFrequency (string) {
var freq = {};
for (var i=0;i & lt; string.длина; i++) {
персонаж ВАР = строка.используя метод charat(я);
if (freq[символ]) {
частота[характер]++;
} еще {
freq[символ] = 1;
}
}

вернуть частоты;
};

2 Ответов

Рейтинг:
1

Richard Deeming

freq быть объектом: Работа с объектами-JavaScript | MDN[^]

Объекты имеют свойства. В Javascript существует два способа доступа к свойствам. По имени:

var x = someObj.myProperty;
someObj.otherProperty = 42;

Или по индексу:
var x = someObj['myProperty'];
someObj['otherProperty'] = 42;

Использование индекса особенно полезно, если вы не знаете имени свойства до выполнения.

Если указанное свойство не было определено, то оно вернется undefined. Этот if условие использует одну из самых уродливых областей Javascript - " истинные "и" ложные " значения:
Правда и ложь: когда все не одинаково в JavaScript-SitePoint[^]

Это можно было бы переписать, чтобы использовать то hasOwnProperty метод[^], что может сделать код немного более ясным, хотя и более подробным:
if (freq.hasOwnProperty(character)){

Если указанное свойство Не существует, вы инициализируете его на число 1.

Именно поэтому на последующих итерациях цикла, когда свойство делает существуя, вы способны увеличивать его.


Рейтинг:
0

Patrice T

Цитата:
И как его можно увеличить, если это строка.

Тот факт, что это не строка, может помочь. freq() это массив.
Используйте отладчик, отладка не является его основной целью, отладчик позволяет выполнять код шаг за шагом и проверять переменные между каждым шагом. это покажет вам, что freq() это массив, который подсчитывает, сколько раз каждый символ появляется в строке.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
Отладка JavaScript[^]
Хром Инструменты Разработчика  |  Сеть  |  Разработчики Google[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Richard Deeming

"freq () - это массив."

Нет, это не так. Это предмет. :)

Patrice T

Используется как ассоциативный массив.