我最近遇到了这个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