UTF-16字符编码之和
Sum of UTF-16 character codes
如果这看起来是一个简单的问题但对我来说不是,我首先要道歉。刚开始学习JavaScript :)
所以我的问题是如何 return UTF-16 字符代码值的总和,例如如果 'A'=65, 'AB'[A+B] = [65+66] = 131, 'ABC' - [A+B+C] = [65+66+67] 将UTF-16 中的 return 198 或 'Hello World' = [H+e+l+l+o+W+o+r+l+d] 将导致添加所有值等等。 .. 我必须创建一个函数来 return UTF-16 代码值的总和。
我想我必须使用 charCodeAt(); 但我不知道如何实现...
提前感谢您的回复
您可以使用 TextEncoder()
和 Array.prototype.reduce()
。请注意,结果将是 198
,而不是 193
let str = "ABC";
let res = [...new TextEncoder().encode(str)].reduce((a, b) => a + b);
console.log(res);
使用:
<script>
var letras = "ABC";
var soma = 0;
letras.split('').forEach(function (letra) {
soma+=letra.charCodeAt(0);
});
console.log(soma);
</script>
//return 198
如果这看起来是一个简单的问题但对我来说不是,我首先要道歉。刚开始学习JavaScript :)
所以我的问题是如何 return UTF-16 字符代码值的总和,例如如果 'A'=65, 'AB'[A+B] = [65+66] = 131, 'ABC' - [A+B+C] = [65+66+67] 将UTF-16 中的 return 198 或 'Hello World' = [H+e+l+l+o+W+o+r+l+d] 将导致添加所有值等等。 .. 我必须创建一个函数来 return UTF-16 代码值的总和。
我想我必须使用 charCodeAt(); 但我不知道如何实现...
提前感谢您的回复
您可以使用 TextEncoder()
和 Array.prototype.reduce()
。请注意,结果将是 198
,而不是 193
let str = "ABC";
let res = [...new TextEncoder().encode(str)].reduce((a, b) => a + b);
console.log(res);
使用:
<script>
var letras = "ABC";
var soma = 0;
letras.split('').forEach(function (letra) {
soma+=letra.charCodeAt(0);
});
console.log(soma);
</script>
//return 198