JavaScriptで2つの配列の対応する要素(順序に依存)が一致しているかを確認する方法
今回は、2つの配列の中で一致している値の個数を比較する関数を作成する方法を解説します。ここでの比較は順序に依存するものとします。
つまり、1つ目の配列の最初の要素は、2つ目の配列の最初の要素と比較し、以降も同じように対応する位置同士で比較していくという意味です。
具体例
例えば、次のような2つの入力配列があったとします。
const arr1 = [4, 7, 4, 3, 3, 3, 7, 6, 5]; const arr2 = [6, 5, 4, 5, 3, 2, 5, 7, 5];
この場合、期待される出力は 3 です。実際に一致しているのは、インデックス2(値:4)、インデックス4(値:3)、インデックス7(値:7)の3箇所だけだからです。
解決方法
この問題は、for ループを使って、両方の配列の対応するインデックスにある値を1つずつチェックするだけで簡単に解決できます。
サンプルコード
const arr1 = [4, 7, 4, 3, 3, 3, 7, 6, 5];
const arr2 = [6, 5, 4, 5, 3, 2, 5, 7, 5];
const correspondingEquality = (arr1, arr2) => {
let res = 0;
for(let i = 0; i < arr1.length; i++){
if(arr1[i] !== arr2[i]){
continue;
};
res++;
};
return res;
};
console.log(correspondingEquality(arr1, arr2));コードのポイント
- 変数
resをカウンターとして初期化し、一致した要素の数を記録します。 forループでインデックスiを順番に走査し、arr1[i]とarr2[i]を厳密等価演算子(!==)で比較します。- 値が異なる場合は
continueでスキップし、一致していればresをインクリメントします。 - 最後にカウンターの値を返すことで、一致した要素の総数が得られます。
実行結果
コンソールには次のように出力されます。
3
このように、シンプルなループ処理だけで、順序を考慮した配列要素の一致数を効率的に求めることができます。
-
JavaScriptの_.initial()関数とは?配列の末尾要素を除外する方法を解説
_.initial()関数とは_.initial()は、JavaScriptのライブラリであるUnderscore.jsに含まれる関数の一つです。このメソッドは、配列の最後の要素とそれ以外の要素を区別し、末尾の要素を除外した結果を取得したい場合に活用されます。つまり、配列の最後の値だけを無視して、残りのすべての要素を取り出すことができる便利な関数です。基本構文_.initial( array, n );_.initial()は、最大2つのパラメータを受け取ることができます。array(必須):対象となる配列です。このメソッドは、渡された配列から最後の要素を除いた、残りすべての要素を返します。n
-
JavaScriptで配列の要素を同じ配列内に複製する方法
JavaScriptでは、concat()メソッドとsort()メソッドを組み合わせることで、既存の配列の要素を同じ配列内に複製することができます。ここでは、実際に動作するサンプルコードを使って、その手順をわかりやすく解説します。 コード例 以下は、配列の要素を同じ配列内に複製するためのコード例です。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport" cont