【JavaScript】配列を2要素ずつのサブ配列に分割する方法
JavaScriptでは、リテラルの配列を受け取り、元の配列の要素をちょうど長さ2のサブ配列に分割した新しい配列を返す関数が必要になることがあります。
ここで重要なポイントは、元の配列の長さが2で割り切れない場合、最後のサブ配列には要素が1つだけ入るという点です。
処理のイメージ
例えば、次のような入力配列があったとします。
const arr = [1, 2, 3, 4, 5, 6, 7];
この場合、期待される出力は以下のようになります。
const output = [[1, 2], [3, 4], [5, 6], [7]];
実装コード
以下がその実装例です。
const arr = [1, 2, 3, 4, 5, 6, 7];
const chunk = arr => {
const size = 2;
const chunkedArray = [];
for (let i = 0; i < arr.length; i++) {
const last = chunkedArray[chunkedArray.length - 1];
if (!last || last.length === size) {
chunkedArray.push([arr[i]]);
} else {
last.push(arr[i]);
}
}
return chunkedArray;
};
console.log(chunk(arr));
コードの解説
このアルゴリズムは、次の手順で動作します。
- サブ配列のサイズとして
size = 2を定義します。 - ループで各要素を処理するたびに、
chunkedArrayの最後のサブ配列を参照します。 - 最後のサブ配列が存在しない場合、またはすでにサイズ2に達している場合は、新しいサブ配列を作成して現在の要素を追加します。
- それ以外の場合は、既存の最後のサブ配列に要素を追加します。
この仕組みにより、配列の長さが奇数であっても、余った要素が自動的に最後の1要素のみのサブ配列になります。
出力結果
コンソールには次のように出力されます。
[ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ], [ 7 ] ]
-
JavaScriptで配列をJSONに変換する方法|JSON.stringify()の使い方を解説
JavaScriptで配列をJSON形式の文字列に変換するには、JSON.stringify()メソッドを使います。このメソッドは、配列やオブジェクトを引数として渡すだけで、JSON形式の文字列を簡単に生成できる非常に便利な機能です。 サンプルコード 以下は、ボタンをクリックすると配列がJSONに変換されて画面に表示されるシンプルなデモです。 <!DOCTYPE html> <html> <head> <style> body { font-family: "Segoe
-
JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説
JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co