魔法JS☆あれい 第5話「joinなんて、concatなわけない」


登場人物

丹生(にゅう)あれい
魔法少女「魔法(マジカル)JS(女子小学生)☆あれい」として活動中。

イテレー太
正体不明の魔法生物。

第1部「ミューテーター・メソッド編」
* 第1話「popでpushした、ような……」
* 第2話「shiftはとってもunshiftって」
* 第3話「もうsortもreverseも怖くない」
* 第4話「fillも、spliceも、copyWithinもあるんだよ」

join()

イテレー太「えー、私が魔法世界からデータを召喚しますので、皆さんは魔法少女になって、配列魔法でそのデータを加工して敵を倒してください。はい、あれいさん早かった」
あれい「なんで大喜利チックなんだよこの駄犬」
イ「さて、今回から第2部『アクセサ・メソッド編』なので、大きな制約が加わるよ! それは『元のデータを変更してはいけない』という制約だよ!」
あ「へえ」
イ「この制約を破ると、それはそれは恐ろしいペナルティを課せられるから気をつけてね!」
あ「例えばどんなペナルティだよ」
イ「自動販売機のお釣りが必ず100円玉とか10円玉ばっかりで返ってくるよ!」
あ「どうでもいいなそりゃ」
イ「さて、気を取り直して、今回僕が魔法世界から召喚したデータは……これだ!」

items = ['', '', 'ポ○ョ'];

イ「これを……」
あ「……まさかとは思うが、これを『の』で繋げて『崖の上のポ○ョ』にしろ、とか言わないだろうな」
イ「すごい! 鋭いね、あれい!」
あ「誰でもわかるわ。この行為に何の意味があるんだ」
イ「じゃあ['風', '谷', 'ナウ○カ']にする?」
あ「どっちでもいいわ」

return items.join('');

イ「やった! 敵が苦しんでるよ!」
あ「これでダメージ受ける敵もどうかと思うぞ」

解説

join() メソッドは、配列 (または配列風オブジェクト) の全要素を順に連結した文字列を新たに作成して返します。区切り文字はコンマ、または指定された文字列です。配列にアイテムが一つしかない場合は、区切り文字を使用せずにアイテムが返されます。

MDNより)

昔からよく使われるお馴染みのメソッドですね。
私はCSVを作る時に多用してます。

concat()

イ「さて、続いてのお題にまいりましょう」
あ「だから大喜利じゃねえよ」
イ「今回僕が魔法世界から召喚したデータは……あれ?」

items = ['とっても'];

あ「おい、要素がたった1個かよ」
イ「いや、月末だから通信速度制限がかかっちゃって……」
あ「スマホかよ」
イ「あ、来た来た、次のデータだ」

items2 = ['すごい'];

あ「おい、早くしろよポンコツ」
イ「ちょっと待って……最後のデータが届くから」

items3 = ['攻撃'];

あ「やっと揃ったか」
イ「ごめんごめん。さて、今召喚した3つの配列を、1つに連結してからreturnして敵を倒してよ!」
あ「面倒くせえなあ……」

return items.concat(items2, items3);

イ「良かった良かった。早く翌月にならないかな」
あ「魔法生物が料金プランをケチってんじゃねえよ」

解説

concat() メソッドは、配列に他の配列や値をつないでできた新しい配列を返します。

MDNより)

「concat」は「concatenate」の略で、「鎖状につなぐ」「連結する」という意味です。複数の配列を連携して、1つの配列として返します。使用されたそれぞれの配列には変更を加えません。

次回予告

indexOfちゃんは、配列内の要素を探すために前から検索するんでしょ?
あの子はindexOfじゃない、後ろから検索するlastIndexOfなんだよ?

第6話 indexOfなの絶対lastIndexOf