lengthで文字列の長さを正しく取得できないケースがある
一般的にJavaScript文字列のlength属性で文字列の長さを取得できますが、日本語第3水準字、第4水準字、絵文字などのUnicodeで表現する文字が正しく取得できない場合があります。
- 絵文字の例:🙏
const str = '\u{1F64F}';
console.log(str + 'の長さ:' + str.length);
実行結果:
🙏の長さ:2
ES6の配列展開で正確な文字列の長さを取得する
配列展開(Array Spread)で文字列を文字配列に変換するときに、文字列に含まれる個々のunicode文字が正しく分けられます。
const str = '\u{1F64F}';
console.log(str + 'の長さ:' + [...str].length);
実行結果:
🙏の長さ:1