如何解决如何反转`String.fromCodePoint`,即将字符串转换为代码点数组?
String.fromCodePoint(...[127482,127480])
给我一面美国国旗 (??)。
如何将标志转回 [127482,127480]
?
解决方法
您正在寻找 codePointAt
,也许使用传播(等)转换回数组,然后映射每个。
console.log(theString.codePointAt(0)); // 127482
console.log(theString.codePointAt(2)); // 127480
// Note −−−−−−−−−−−−−−−−−−−−−−−−−−^
// It's 2 because the first code point in the string occupies two code *units*
或
const array = [...theString].map(s => s.codePointAt(0));
console.log(array); // [127482,127480]
或通过 Sebastian Simon pointed out 及其映射回调跳过作为 Array.from
的临时步骤:
const array = Array.from(theString,s => s.codePointAt(0));
console.log(array); // [127482,127480]
示例:
const theString = String.fromCodePoint(...[127482,127480]);
console.log(theString.codePointAt(0)); // 127482
console.log(theString.codePointAt(2)); // 127480
const array = [...theString].map(s => s.codePointAt(0));
console.log(array); // [127482,127480]
const array2 = Array.from(theString,s => s.codePointAt(0));
console.log(array2); // [127482,127480]
Spread 和 Array.from
都使用字符串 iterator 工作,它通过代码点工作,而不是像大多数字符串方法那样工作的代码单元。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。