我一直在試圖解決一個計算字符串中的字符的難題,並找到以下代碼。代碼工作,但我無法理解替換部分:有人會解釋這個代碼的字符?
function getCharCounts(s) {
var letters = {};
s.replace(/\S/g, function(s){
letters[s] = (isNaN(letters[s] ? 1 : letters[s]) + 1);
});
return letters;
}
console.log(getCharCounts('he111 144pressions'));
會有人請解釋一下代碼給我或寫一個簡單的版本?
閱讀:http://www.aivosto.com/vbtips/regex.html和http://stackoverflow.com/questions/2595392/what-does-the -question-mark-and-the-colon-ternary-operator-mean-in-objectiv – howderek 2013-03-04 14:42:51
你確定它可行嗎?我試着用「abbc」得到這個:{「a」:2,「b」:1,「c」:2} http://jsbin.com/uzexer/1/edit – 2013-03-04 14:49:42
@SteveWellens這是因爲isNaN行中的括號錯誤。 – jantimon 2013-03-04 14:50:34