有没有更有效的方法来计算JavaScript中字符串的Unicode点数?

时间:2019-05-14 08:35:50

标签: javascript unicode utf-16

JavaScript中字符串的length属性是代码单元的数量,例如:

console.log("a".length); // 3

我实现了一个返回Unicode点数的函数:

function length(str) {
  let l = 0;
  for (let i = 0; i < str.length; i++) {
    const code = str.charCodeAt(i);
    if (code >= 0xD800 && code <= 0xDBFF)
      i++;
    l += 1;
  }
  return l;
}

console.log(length("a")); // 2

但是,如果字符串很长,我的实现就不是很有效。有没有人有更好的实现?为什么ECMAScript不提供执行此工作的内置方法?

0 个答案:

没有答案