JavaScript で 4 バイト文字がある文字列を一文字ずつの配列にする
- カテゴリ:
- JavaScript
- コメント数:
- Comments: 0
◆ Array.from の配列化で文字列を配列化すると 4 バイト文字も対応してる
◆ 2 バイト文字を 1 つずつに分解したいときは これまでどおりの split
◆ spread operator (...) 使えば 短く 4 バイト文字対応の分割ができる
◆ 2 バイト文字を 1 つずつに分解したいときは これまでどおりの split
◆ spread operator (...) 使えば 短く 4 バイト文字対応の分割ができる
JavaScript では文字列を一文字ずつに分解した配列化するのは split に空文字列を引数にすればできます
ですが 最近の絵文字などの 4 バイト文字が入ってくるとおかしなことになります
4 バイト文字があってもできるようにするには ES6 の Array.from(str_4byte_word) を使って配列化すればできます
短く書きたいなら [...str_4byte_word] と spread operator 使うこともできます
最初のいくつかは 2 バイトで表現できる範囲の絵文字なので split でもちゃんと表示されます
ですが 最近の絵文字などの 4 バイト文字が入ってくるとおかしなことになります
4 バイト文字があってもできるようにするには ES6 の Array.from(str_4byte_word) を使って配列化すればできます
短く書きたいなら [...str_4byte_word] と spread operator 使うこともできます
var emoji = "☺⛺✅㊗🆘🌀🌟🌾🍨🍬🍰🎃🎄🎍🎨🏃💞💤😭😒"
console.log(emoji.split(""))
console.log(Array.from(emoji)
console.log([...emoji])
console.log(emoji.split(""))
console.log(Array.from(emoji)
console.log([...emoji])
["☺", "⛺", "✅", "㊗", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�", "�"]
["☺", "⛺", "✅", "㊗", "🆘", "🌀", "🌟", "🌾", "🍨", "🍬", "🍰", "🎃", "🎄", "🎍", "🎨", "🏃", "💞", "💤", "😭", "😒"]
["☺", "⛺", "✅", "㊗", "🆘", "🌀", "🌟", "🌾", "🍨", "🍬", "🍰", "🎃", "🎄", "🎍", "🎨", "🏃", "💞", "💤", "😭", "😒"]
["☺", "⛺", "✅", "㊗", "🆘", "🌀", "🌟", "🌾", "🍨", "🍬", "🍰", "🎃", "🎄", "🎍", "🎨", "🏃", "💞", "💤", "😭", "😒"]
["☺", "⛺", "✅", "㊗", "🆘", "🌀", "🌟", "🌾", "🍨", "🍬", "🍰", "🎃", "🎄", "🎍", "🎨", "🏃", "💞", "💤", "😭", "😒"]
最初のいくつかは 2 バイトで表現できる範囲の絵文字なので split でもちゃんと表示されます