2016-04-18 9 views
1

UPD:
他のオブジェクトからいくつかのオブジェクトを削除するのに本当に必要なのは?
data[ 'some_key' ] = undefinedは十分ですか?Javascriptの "delete"演算子

元の質問:
私はそのようないくつかの、別のオブジェクトに格納されているいくつかのオブジェクトを削除する:

var data = { 
    'a': {...}, 
    'b': {...}, 
    'c': {...}, 
    ... 
} 

が、それは「削除」演算子を使用することは本当に良いではないというのは本当です練習?
私はそれを使用すべきで、使用すべきではありませんか?配列の要素を削除

+2

あなたが投稿したデータは、オブジェクトではない配列です。 –

+0

'delete'はそのオブジェクトへの参照だけを壊します。 – Chris

+1

大丈夫だよ、そうだね、オブジェクトだよ – Legotin

答えて

-1

、穴を作成する(lengthプロパティが更新されていない)

> var arr = [ 'a', 'b' ]; 
> arr.length 
2 
> delete arr[1] // does not update length 
true 
> arr 
[ 'a', ] 
> arr.length 
2 

また、配列の長さを減少させることにより、配列要素を末尾削除することができます。

削除は、オブジェクトのプロパティを削除せずに削除する唯一の真の方法ですが、「代替」のオブジェクト[キー] =未定義に比べて100倍も遅くなります。