JavaScriptで2つの文字列を交互にマージする方法
本記事では、2つの文字列を引数として受け取り、それぞれの文字を交互に組み合わせた新しい文字列を返すJavaScript関数の作成方法を解説します。
例えば、次の2つの文字列が与えられたとします。
const str1 = 'abc'; const str2 = 'def';
期待される出力
この場合、出力は以下のようになります。
const output = 'adbecf';
つまり、str1 の1文字目「a」と str2 の1文字目「d」を連結し、続いて「b」と「e」、「c」と「f」を順番に組み合わせていくイメージです。なお、片方の文字列がもう片方より長い場合でも、余った文字はそのまま末尾に追加される仕様としています。
実装例
実際のコードは以下のとおりです。
const str1 = 'abc';
const str2 = 'def';
const mergeAlternatively = (str1, str2) => {
const a = str1.split("").filter(el => !!el);
const b = str2.split("");
let mergedString = '';
for (var i = 0; i < a.length || i < b.length; i++) {
if (i < a.length) {
mergedString += a[i];
}
if (i < b.length) {
mergedString += b[i];
}
}
return mergedString;
};
console.log(mergeAlternatively(str1, str2));
コードのポイント
split("")を使うことで、文字列を1文字ずつの配列に分解できます。filter(el => !!el)によって空文字を除外し、意図しない文字の混入を防いでいます。- ループ条件を
i < a.length || i < b.lengthとすることで、長さが異なる2つの文字列にも柔軟に対応できます。 - 各ループ内で
a[i]とb[i]の存在チェックを行うことで、配列の範囲外参照を回避しながら交互に文字を連結しています。
実行結果
コンソールには以下のように出力されます。
adbecf
-
JavaScriptで2つ以上の文字列を結合する3つの方法(+演算子・+=・concat())
JavaScriptで2つ以上の文字列を結合する方法を、具体的なコード例とともにわかりやすく解説します。 JavaScriptには、2つ以上の文字列を結合するためのさまざまな方法があります。代表的なのは、プラス演算子 +、プラスイコール演算子 +=、そして concat() メソッドの3つです。 なお、+ と += は代入演算子と呼ばれます。 それでは、3つの方法をすべて実際に試してみましょう! プラス演算子(+) たとえば、firstName と lastName という2つの変数があり、その結合した値を fullName という3つ目の変数に代入したいとします。この場合、次のように書くこと
-
JavaScriptで2つのオブジェクトをマージする方法を解説
JavaScriptでは、スプレッド構文(...)を使うことで、2つのオブジェクトを簡単に1つにマージ(結合)できます。各オブジェクトの前に「...」を付けて新しいオブジェクトリテラル内に展開するだけで、すべてのプロパティが統合されたオブジェクトが生成されます。以下に、2つのJavaScriptオブジェクトをマージするコードの例を示します。コード例<!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=dev