JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】length を 0 にして空にした配列に、メモリ(要素領域)を再度割り当てる方法

JavaScriptでは、配列の length プロパティを 0 に設定すると、配列のすべての要素が削除され、メモリ上の内容がクリアされます。さらに、length プロパティに任意の数値を代入することで、指定したサイズ分の領域を再び割り当てることができます。

length を使ったメモリのクリアと再割り当て

まず、次のような配列オブジェクトがあるとします。

var arrayObject =
    [
      "John",
      "David",
      "Mike"
    ];

length プロパティを使って、配列を空にし(メモリをクリアし)、その後あらためて領域を割り当てます。構文は以下のとおりです。

yourArrayObjectName.length = 0; // メモリをクリアする
yourArrayObjectName.length = 4; // 指定した長さ分の領域を割り当てる

サンプルコード

実際のコードは次のとおりです。

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; を実行した直後、console.log(arrayObject) の結果は空の配列 [] となり、元の3つの要素はすべて削除されています。
  • 続いて arrayObject.length = 5; とすることで、5つ分のスロット(領域)が確保されます。ただしこの時点では値が代入されていないため、各要素は初期値の undefined になります。
  • そのため、forループで各要素を出力すると、undefined が5回表示されるという結果になります。

このように、length プロパティを操作することで、配列のメモリを簡単にクリアしたり、必要なサイズの領域を確保したりすることができます。

  1. JavaScriptでインポートしたオブジェクトを分割代入(デストラクチャリング)する方法

    JavaScriptでは、ESモジュールからインポートしたオブジェクトに対して分割代入(デストラクチャリング)を使うことで、必要なプロパティだけを個別の変数として簡潔に取り出すことができます。ここでは、import で読み込んだオブジェクトを分割代入する具体的な手順とコード例を紹介します。 ポイント:分割代入の基本構文 オブジェクトの分割代入は、次のように波括弧 { } の中に取り出したいプロパティ名を並べて記述します。let {プロパティ1, プロパティ2, プロパティ3} = オブジェクト;この構文は、インポートされたデフォルトエクスポートのオブジェクトにもそのまま適用できます。 コード例

  2. JavaScriptで多次元オブジェクトを作成する方法【サンプルコード付き】

    はじめに JavaScriptでは、オブジェクトのプロパティの値として別のオブジェクトを持たせることで、多次元(ネストされた)オブジェクトを作成できます。この構造を活用すると、氏名や学校情報、住所のように階層関係のあるデータを、直感的かつ整理された形で表現することが可能です。 サンプルコード 以下は、多次元JavaScriptオブジェクトを作成し、コンソールに表示するためのコード例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /