0

String.fromCodePoint(...[127482, 127480])给我一面美国国旗()。

怎么把flag转回来[127482, 127480]

4

1 回答 1

3

您正在寻找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 所指出的那样跳过一个中间步骤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]

传播和Array.from两者都使用字符串迭代器工作,它通过代码点工作,而不是像大多数字符串方法那样的代码单元。

于 2021-05-21T07:47:12.287 回答