1. ホーム
  2. javascript

[解決済み] 複雑な絵文字を含む文字列を反転させるには?

2022-04-21 18:01:07

質問

入力してください。

Hello world????‍????????‍????‍????‍????

希望する出力

????‍????‍????‍????????‍????dlrow olleH

いくつかの方法を試しましたが、どれも正しい答えは得られませんでした。

これは惨敗でしたね。

const text = 'Hello world????‍????????‍????‍????‍????';

const reversed = text.split('').reverse().join('');

console.log(reversed);

これはちょっと動くけど、壊れる ????‍????‍????‍???? を4つの異なる絵文字に変換します。

const text = 'Hello world????‍????????‍????‍????‍????';

const reversed = [...text].reverse().join('');

console.log(reversed);

のすべての回答も試してみました。 この質問 が、どれもうまくいきません。

目的の出力を得るための方法はありますか?

どのように解決するのですか?

もし可能であれば _.split() が提供する機能 ロダッシュ . から バージョン4.0 を開始しました。 _.split() はUnicodeの絵文字を分割することができます。

ネイティブの .reverse().join('') を反転させれば、ゼロ幅のジョイナーを含む絵文字でもうまくいくはずです。

function reverse(txt) { return _.split(txt, '').reverse().join(''); }

const text = 'Hello world????‍????????‍????‍????‍????';
console.log(reverse(text));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js" integrity="sha512-90vH1Z83AJY9DmlWa8WkjkV79yfS2n2Oxhsi2dZbIv0nC4E6m5AbH8Nh156kkM7JePmqD6tcZsfad1ueoaovww==" crossorigin="anonymous"></script>