如何反转 `String.fromCodePoint`,即将字符串转换为代码点数组?
How do I reverse `String.fromCodePoint`, i.e. convert a string to an array of code points?
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]
或跳过中间步骤 via 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 来工作,它按代码点工作,而不是像大多数字符串方法那样的代码单元。
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]
或跳过中间步骤 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 来工作,它按代码点工作,而不是像大多数字符串方法那样的代码单元。