JavaScriptで2つの配列の要素を交互にマージする方法
問題の概要
今回は、2つの配列を受け取り、それぞれの配列から交互に要素を取り出して1つの配列へマージするJavaScript関数を作成する必要があります。
例
たとえば、次のような2つの配列があるとします。
const arr1 = [4, 3, 2, 5, 6, 8, 9];
const arr2 = [2, 1, 6, 8, 9, 4, 3];
この場合、期待される出力は以下のようになります。arr1とarr2の要素が1つずつ交互に並んでいる点に注目してください。
const output = [4, 2, 3, 1, 2, 6, 5, 8, 6, 9, 8, 4, 9, 3];
実装コード
この関数を実装したコードは次のとおりです。
const arr1 = [4, 3, 2, 5, 6, 8, 9];
const arr2 = [2, 1, 6, 8, 9, 4, 3];
const mergeAlternatively = (arr1, arr2) => {
const res = [];
for(let i = 0; i < arr1.length + arr2.length; i++){
if(i % 2 === 0){
res.push(arr1[i/2]);
}else{
res.push(arr2[(i-1)/2]);
};
};
return res;
};
console.log(mergeAlternatively(arr1, arr2));
コードの解説
この関数では、結合後の配列の長さ(arr1.length + arr2.length)分だけループ処理を行っています。ループ変数 i が偶数の場合は arr1 の要素を、奇数の場合は arr2 の要素を順番に新しい配列 res へ追加していきます。
インデックスは i / 2 や (i - 1) / 2 で計算することで、各配列内の位置を正しく参照できる仕組みです。これにより、両方の配列の要素が交互に並んだ新しい配列が完成します。
出力結果
コンソールには次のように表示されます。
[
4, 2, 3, 1, 2, 6,
5, 8, 6, 9, 8, 4,
9, 3
]
-
JavaScriptで2つの配列を結合する方法【concat()とスプレッド構文】
JavaScriptで2つの配列を1つにまとめたい場合、最も一般的なのが concat() メソッドです。このメソッドは、元の配列を変更することなく、複数の配列や値を連結した新しい配列を返します。 concat()メソッドの基本構文 let 新しい配列 = 配列A.concat(配列B); サンプルコード 以下は、ボタンをクリックすると2つの配列を結合し、その結果を画面に表示する完全なサンプルです。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8&
-
JavaScriptで2つの配列を乗算する方法|forループとmap()の実装例
JavaScriptで2つの配列の各要素同士を乗算し、その結果を新しい配列として取得する方法を解説します。基本的にはforループでインデックスを順番に処理しながら、対応する位置にある要素同士を掛け合わせていくシンプルなアプローチです。 2つの配列を乗算するサンプルコード 以下の例では、「CLICK HERE」ボタンをクリックすると、配列 arr と arr1 の対応する要素が乗算され、結果が新しい配列 multArray に格納された上で画面に表示されます。 <!DOCTYPE html> <html lang=en> <head> <meta ch