部分配列とは
部分配列は、既存の配列から一部の要素を取り出して、新しい配列として扱う仕組みです。これは配列の一部分を切り取ったものではなく、元の配列を参照する「ビュー」のようなものです。つまり、部分配列に変更を加えると、元の配列にも反映されます。
部分配列の作成方法
JavaScriptでは、`slice()`メソッドを使って部分配列を作成します。`slice()`メソッドは、開始位置と終了位置を指定して、その範囲の要素を含む新しい配列を返します。終了位置は省略可能で、省略した場合は配列の最後までとなります。
const originalArray = [1, 2, 3, 4, 5];
// インデックス1から3までの要素を含む部分配列を作成
const subArray = originalArray.slice(1, 4);
console.log(subArray); // [2, 3, 4]
部分配列の特徴
- 元の配列を参照するため、メモリ効率が良い
- 部分配列への変更は、元の配列にも反映される
- 多次元配列でも部分配列を作成できる
部分配列の使用例
部分配列は、以下のような場面で役立ちます。
- 配列の一部分のみ処理する場合
- 関数の引数に配列の一部分だけ渡したい場合
- 大きな配列を効率的に扱いたい場合
部分配列と添字
部分配列は、元の配列の一部を参照しているため、添字も元の配列と共有しています。例えば、元の配列のインデックス2の要素は、部分配列でもインデックス2になります。
元の配列 | 部分配列 |
---|---|
[1, 2, 3, 4, 5] | [2, 3, 4] |
インデックス2: 3 | インデックス2: 4 |
注意点
部分配列は元の配列を参照しているため、部分配列を変更すると元の配列にも影響します。元の配列を変更したくない場合は、`slice()`メソッドで新しい配列を作成する必要があります。
参考資料
部分配列に関するQ&A
Q1: 部分配列と元の配列は同じメモリ領域を共有していますか?
A1: 部分配列は元の配列の一部を参照しているだけで、新しいメモリ領域を確保しません。そのため、メモリ効率が良くなります。
Q2: 部分配列を変更すると、元の配列にも影響しますか?
A2: はい、影響します。部分配列は元の配列を参照しているため、部分配列への変更は元の配列にも反映されます。
Q3: 部分配列と元の配列の両方を変更せずに処理するにはどうすればよいですか?
A3: `slice()`メソッドを使って、元の配列のコピーを作成します。コピーは新しいメモリ領域に作成されるため、元の配列に影響を与えずに処理できます。
その他の参考記事:jquery オブジェクト 作成