codewarsの問題にチャレンジ中です。JavaScriptで、文字列を逆方向に変換する方法を、調べたので、メモとして残しておきます。
目次
複数の単語を含む文字列を逆方向にする
文字列をリバース
ひとつの単語だけ、リバースして反対方向に変える方法は、下記のようになります。
const str = 'Team';
const reverse = str.split('').reverse().join('');
console.log(reverse); //'maeT';
split()メソッド
split()メソッドは、文字列(String) を指定した区切り文字列で分割することにより、文字列の配列を作ります。
const str = 'Team';
console.log(str.split('')); //文字列を分割して、配列を作る
//['T','e','a','m'];
reverse()メソッド
reverse()メソッドは、配列の要素を反転させるメソッドです。
console.log(str.split('').reverse(); //配列を反対方向にする
//['m', 'a', 'e', 'T'];
join()メソッド
joinで文字列を連結します。引数に文字列を入れると、引数を除いた文字列が返ります。
console.log(str.split('').reverse()join(''); //配列を反対方向にして''を削除して結合
//['maeT'];
複数の単語の文字列を反転させる
次は、複数の単語を含んだ文字列の空白を維持したまま、文字列を反転させます。
Examples
"This is an example!" ==> "sihT si na !elpmaxe"
"double spaces" ==> "elbuod secaps
Best Practice
mapを使うと、スマートに書くことができます。
function reverseWords(str) {
return str.split(' ').map(function(word){
return word.split('').reverse().join('');
}).join(' ');
}
終わりに
今回は、文字列の操作するメソッドについて、ご紹介しました。Codewarsは、自分の引き出しを増やすのに最適です!
CodeWarsのバッジが、かわいいです。
CodeWarsに興味がある方は、こちらからチャレンジしてみてください。※最初に簡単なテストがあります。