JavaScriptで配列のlengthを0に設定するとどうなる?メモリのクリアと確保の方法を解説
JavaScriptでlengthプロパティを0に設定するとは?
JavaScriptでは、配列のlengthプロパティに0を代入することで、配列内の要素をすべて一括で削除できます。この操作は、不要になったデータを破棄してメモリを解放したい場合に便利です。
例として、次のような配列オブジェクトを用意します。
var arrayObject = [ "John", "David", "Mike" ];
lengthプロパティによるメモリのクリアと確保
lengthプロパティを使うと、配列の長さを自由に変更できます。0を設定すれば要素がすべて消去され、任意の数値を設定すればその分の領域が確保されます。構文は以下のとおりです。
yourArrayObjectName.length = 0; // メモリをクリア yourArrayObjectName.length = 4; // メモリを確保
サンプルコード
実際の動作を確認してみましょう。まず配列の中身を出力し、続いてlength = 0で配列を空にした後、length = 5を設定して各要素の状態をチェックします。
var arrayObject = [ "John", "David", "Mike" ]; arrayObject.length = 0; console.log(arrayObject); arrayObject.length = 5; for (var i = 0; i < arrayObject.length; i++) console.log(arrayObject[i]);
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node fileName.js
ここでは、ファイル名をdemo277.jsとしています。
実行結果
コンソールには次のように出力されます。
PS C:\Users\Amit\javascript-code> node demo277.js [] undefined undefined undefined undefined undefined
結果の解説
arrayObject.length = 0;を実行した時点で、"John"、"David"、"Mike" のすべての要素が配列から削除され、出力は空の配列 [] になります。
その後、length = 5 を設定すると、配列には5つの空のスロットが作成されます。これらのスロットは値を持たないため、forループで各要素を参照すると undefined が5回表示されます。
-
JavaScriptで変数を使ってオブジェクトのキーを動的に設定する方法
JavaScriptで変数を使ってオブジェクトのキーを設定する方法 JavaScriptでは、ブラケット記法(角括弧 [])を使用することで、変数の値をオブジェクトのキーとして動的に設定できます。ドット記法では変数をキーとして扱うことができないため、動的なキー設定にはブラケット記法が必須となります。 以下に、ユーザーが入力したプロパティ名とプロパティ値をオブジェクトに追加するサンプルコードを示します。 コード例 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="U
-
JavaScriptでSet(セット)をオブジェクトに変換する方法
JavaScriptでプログラムを作っていると、Set(セット)の中身をオブジェクトとして扱いたい場面に出くわすことがあります。本記事では、Object.assign()メソッドを使って、Setをオブジェクトに変換する方法を、具体的なコード例とともにわかりやすく解説します。 変換前のSetを用意する まずは、例として使用するSetを用意しましょう。 var name = new Set(['John', 'David', 'Bob', 'Mike']); Setからオブジェクトへの変換方法 Setをオブジェクトに変換するには、