我最近遇到了這個javascript函數來計算某個字符出現在字符串中的次數。 我可以看到它使用.replace()方法替換任何非空白空間的正則表達式,但我不能完全理解它將被替換。javascript三元運算符來計算字符串中的字符
function Char_Counts(str1) {
var uchars = {};
str1.replace(/\S/g, function(l) {
uchars[l] = (isNaN(uchars[l]) ? 1 : uchars[l] + 1);
});
return uchars;
}
console.log(Char_Counts("This is a sample string"));
任何人都可以請解釋參數「L」是正在傳遞什麼樣的匿名函數和什麼是三元運算符中發生的事情,我manged實現,因爲這同樣的效果,但對循環使用嵌套,但我甚至無法看到這甚至遍歷字符串字符。這是控制檯中的輸出,我只是想了解到底發生了什麼。
Object { T: 1, h: 1, i: 3, s: 4, a: 2, m: 1, p: 1, l: 1, e: 1, t: 1, 3 more… }
是字符串中的字符相匹配...自從你正在使用'\ S'這是每一個非空格字符 –
三元檢查如果字符已經存在於對象中,如果是,則遞增計數器其他設置爲1 – Tushar