現在の言語: 日本語

戻る

配列をクリア(要素をすべて削除)
配列関連

配列はArrayコンストラクタから生成された特別なオブジェクトです。
プロパティとメソッドを持っているため
push()やlengthなどが使えます。

const
予期せぬ「配列丸ごとの入れ替え」を防ぐことを目的とします。
新しい配列([])を代入(再代入)することができません。
そのため、配列の長さを 0 に上書きすることで中身を空にします。
(例)
const ary = [];
ary.push(100);
ary.length = 0;//中身を空にします。

let
再代入が必要な場合に使用します。
(例)
let ary = [];
ary.push(100);
ary = [];//新しい空の配列で上書きされます。

[サンプル]

copy
const ary = [];
for(i=0;i<3;i++)
{
	ary.push(i+1);
}
/*
ary=[];//constへの再代入禁止
上記を実行するによって次のエラーが発生します
Uncaught TypeError: Assignment to constant variable.
*/
ary.length = 1;
displayArray(ary);
/*
i:0 ary:1
*/
ary.length = 0;//配列をクリア
displayArray(ary);
//結果なし:配列の中身がクリアされています
function displayArray(ary)
{
	for(i=0; i < ary.length; i++)
	{
		console.log("i:" + i + " ary:" + ary[i]);
	}
}

let ary2 = [];
for(i=0;i<3;i++)
{
	ary2.push(i+1);
}
displayArray(ary2);
/*
i:0 ary:1
i:1 ary:2
i:2 ary:3
*/
ary2.length = 1;
/*
i:0 ary:1
*/
displayArray(ary2);
ary2 = [];
console.log("ary2 = [];を実行");
displayArray(ary2);
//結果なし:配列の中身がクリアされています
copy
const ary = [];
for(i=0;i<3;i++)
{
	ary.push(i+1);
}
/*
ary=[]; // Reassignment to const is prohibited
Executing the above will result in the following error:
Uncaught TypeError: Assignment to constant variable.
*/
ary.length = 1;
displayArray(ary);
/*
i:0 ary:1
*/
ary.length = 0; // Clear the array
displayArray(ary);
//No result: The array contents have been cleared
function displayArray(ary)
{
	for(i=0; i < ary.length; i++)
	{
		console.log("i:" + i + " ary:" + ary[i]);
	}
}

let ary2 = [];
for(i=0;i<3;i++)
{
	ary2.push(i+1);
}
displayArray(ary2);
/*
i:0 ary:1
i:1 ary:2
i:2 ary:3
*/
ary2.length = 1;
/*
i:0 ary:1
*/
displayArray(ary2);
ary2 = [];
console.log("Executing ary2 = [];");
displayArray(ary2);
//No result: The array contents have been cleared.

配列をクリアする関数は現時点では用意されていないようですが
基本的には const を使い、ary.length = 0;
を使用して配列をクリアする方法が相当するようです。




戻る

著作権情報
ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。
ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、
または公開したりすることはできません。
当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、
その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について
一切の責任を負わないものとします。