作者:云龙破月56 | 来源:互联网 | 2023-01-30 19:41
我试图在一个文本块中计算表情符号的频率.例如:
"I love so much " -> [{:3}, {:1}]
为了计算一个文本块中字符的频率,我正在使用
function getFrequency(string) {
var freq = {};
for (var i=0; i
来源:https://stackoverflow.com/a/18619975/4975358
^上面的代码很好用,但它不识别表情符号字符:
{?: 1, ?: 3, ?: 2}
另外,我更喜欢输出是长度为1的json对象列表,而不是一个长json对象.
1> le_m..:
您可以使用String.replace
函数的回调和unicode感知RegExp
从unicode块"杂项符号"到"象形图传输和映射符号"(0x1F300到0x1F6FF)的所有内容:
let str = "I love so much ";
let freq = {};
str.replace(/[\u{1F300}-\u{1F6FF}]/gu, char => freq[char] = (freq[char] || 0) + 1);
console.log(freq);