JavaScriptで配列を空にする方法まとめ【3つの手法と使い分けのポイント】
JavaScriptで配列を空にする(初期化する)方法は複数あります。それぞれの手法には特徴や注意点があり、状況に応じて適切に使い分けることが重要です。この記事では、代表的な3つの方法と、それぞれのメリット・デメリットを詳しく解説します。
まず、以下のような配列があると仮定します。
let arr = [1, 'test', {}, 123.43];方法1:新しい空の配列で置き換える
arr = [];
変数arrに新しい空の配列を再代入する方法です。最もシンプルかつ高速な手法として知られています。
ただし注意点として、元の配列への参照がプログラムの他の場所に存在する場合、それらの参照は自動的に更新されません。結果として、参照側は引き続き古い配列を使い続けることになります。他から参照されていない配列であれば、この方法が最適です。
方法2:lengthプロパティを0に設定する
arr.length = 0;
lengthプロパティを0にすることで、既存の配列の中身をすべて削除できます。高速でありながら、元の配列オブジェクト自体を維持できるため、他の場所からの参照もそのまま有効になります。
一方で、この方法では配列内の要素(特にオブジェクト)が即座にメモリ上から解放されるとは限らず、メモリ面での影響が残る可能性があります。メモリ使用量を厳密に管理したい場面では、要素を明示的に除去したうえでガベージコレクションに任せるなどの工夫が必要です。
方法3:splice()で全要素を削除する
arr.splice(0, arr.length);
splice()メソッドを使い、インデックス0から配列の末尾(arr.length)までの全要素を一括削除する方法です。元の配列オブジェクト自体を直接操作するため、他の場所からの参照にも正しく反映されます。確実に既存の配列をクリアしたいケースで有効な手段です。
3つの方法の比較と使い分け
| 方法 | 速度 | 参照の扱い | 向いている場面 |
|---|---|---|---|
arr = [] | ◎ 最速 | 旧配列を参照し続ける | 他からの参照がない場合 |
arr.length = 0 | ○ 高速 | 参照先もクリアされる | 参照を維持しつつ高速に処理したい場合 |
arr.splice(0, arr.length) | △ やや遅い | 参照先もクリアされる | 確実に全要素を除去したい場合 |
まとめ
配列を空にする方法は、単純な速度だけでなく「他の場所からの参照をどう扱いたいか」「メモリ管理をどう考えるか」という観点で選ぶことが大切です。
- 参照がないなら →
arr = []が最速でおすすめ - 参照を保持したいなら →
arr.length = 0かarr.splice(0, arr.length) - 確実性重視なら →
splice()による全要素削除
用途に合わせて最適な手法を選び、パフォーマンスと保守性のバランスが取れたコードを書きましょう。
-
JavaScript配列から一意の値(重複なし)を取得する方法
JavaScriptの配列に含まれる重複した値を取り除き、一意の値(ユニークな値)だけを取得したい場合は、Setオブジェクトを使うのが最もシンプルで効率的な方法です。 Setは同じ値を1つしか格納できないデータ構造のため、配列をnew Set()に渡すだけで自動的に重複が排除されます。その後、スプレッド構文([...set])を使えば、簡単に元の配列形式へ戻すことができます。 サンプルコード 以下は、JavaScriptの配列からすべての一意の値を取得する実際のコード例です。 <!DOCTYPE html> <html lang=ja> <head> <
-
JavaScriptで配列を空にする4つの方法【サンプルコード付きで解説】
JavaScriptで配列を空にする方法は、主に4つあります。それぞれ動作の仕組みや特徴が異なるため、目的に応じて適切な方法を選ぶことが大切です。配列を空にする4つの方法新しい空の配列を代入する:配列変数に、新しく作成した空の配列を代入します。最もシンプルな方法ですが、元の配列を参照している他の変数が残る点には注意が必要です。lengthプロパティを使う:配列のlengthプロパティに0を設定するだけで、すべての要素を削除できます。高速で、元の配列への参照も維持されるため、実務で最もよく使われる方法のひとつです。popメソッドを使う:配列の要素数が0になるまで、popメソッドで末尾の要素を繰り