【JavaScript】オブジェクトから要素を削除する (original) (raw)
今回はJavaScriptで以下のJavaの記事を同じ様なケース。
JavaScriptでクラスを利用せず、次の様にオブジェクト(連想配列)を生成した場合の話。
例: string1.js
let data = {"key": "value"};
console.log(data); // {key: 'value'}と出力される
この状態でkeyというキーを消し去りたい場合に、単純にnullを代入してもキー情報が残ってしまう。
例: string2.js
let data = {"key": "value"};
data["key"] = null;
console.log(data); // {key: null}と出力される
console.log(Object.keys(data)); // ['key']と出力される
値だけでなくキーも抹消したい場合には**delete演算子**を使用する。
例: string3.js
let data = {"key": "value"};
delete data['key']; // 問題なく削除できた場合にはtrueが返る
console.log(data); // {}と出力される
console.log(Object.keys(data)); // []と出力される
ただしstrictモードで編集不可のプロパティだった場合は例外が発生するので注意。
また配列に対しても**delete演算子**が利用できるが、この場合は対象の要素だけが消える動きをする。
例: string4.js
let arr = ["A", "B", "C"];
delete data[1]; // 問題なく削除できた場合にはtrueが返る
console.log(arr); // ["A", empty, "C"]と出力される
console.log(arr.length) // 3と出力される