Эта функция подсчитывает количество всех символов строки в строке. Я не совсем понимаю здесь утверждение if и как оно работает.как это сделать, если заявление работает и означает? (Javascript)
function getFrequency(string) {
var freq = {};
for (var i=0; i<string.length;i++) {
var character = string[i];
if (freq[character]) {
freq[character]++;
} else {
freq[character] = 1;
}
}
return freq;
};
Я думал freq[character]
это свойство объекта, такого как A
B
, как это работает с if(freq[character])
также как делает приращение freq[character]++
работ?
Я сделал тест, как это, чтобы попытаться понять его.
var v = {};
v.h = 3;
v["h"]++;
v["h"] = v["h"] + 1;
v.h++;
v.h = v.h + 2;
console.log(v);
console.log(v["h"]);
Я думаю, что я могу предположить, если заявление работает, что если свойство существует, но я думал, что JS имеет свойство объекта вызывает .hasOwnProperty
не должны это использовать вместо этого? Что касается приращений, для моего теста это работает, но я просто не понимаю причины.
Может кто-нибудь дать мне руку, чтобы разработать это? За все время заблаговременно
Похоже, что он подсчитывает вхождения символов 'string = 'abbcccdd'' ==' freq = [1,2,3,2] ' – brod
Это подсчитывает количество вхождений каждого символа (буквы, цифры и т. Д.) В строка. Оператор if говорит по существу «если значение [character] объекта freq установлено и имеет значение, затем добавьте его к нему (это то, что' ++ 'делает), в противном случае установите его в 1« –
» [Удачи] (http://stackoverflow.com/questions/7615214/in-javascript-why-is-0-equal-to-false-but-when-tested-by-if-it-is-not-fals) –