2012-02-05 5 views
3

オブジェクトリテラルからオブジェクトを削除しようとしていますか?しかし、なぜそれが働かないのか理解できません。javascriptはオブジェクトのリテラルから値を取り除きます

var data= 
{ 
    "car": 3, 
    "boat": 2 
}; 

data.pop(); //should remove last one? 
data.splice(1, 1); // removes element with index 1? 

私はここで間違っていますか?それはあなたが名前で項目を削除する可能性がありますか?ボートを取り外すと言う。これは、アレイ

ない
JSFiddle

答えて

5

そのオブジェクトの配列ではありませんので、deleteは次のように

を動作するはずです配列上でのみ動作します

var data= 

    [ { "car": 3},{ "boat": 2}] 
+0

どういたしまして – Rob

+0

ソリューションをありがとう! :) – gideon

1

var data=  
{ 
   "car": 3, 
   "boat": 2 
}; 

alert(data["boat"]); 
delete data["boat"]; 
alert(data["boat"]); 

が行動でそれを参照してください。

2

dataは配列ではありません。 popsplice方法はinteger index based arrays上で動作します。

var data = [ 
    { "car": 3 }, 
    { "boat": 2 } 
]; 

data.pop(); 
data.splice(1, 1); 
2

使用delete

delete data.car; 

> var data = { "car" : 3, "boat" : 2 } 
> data 
{ car: 3, boat: 2 } 
> delete data.car; 
> data 
{ boat: 2 } 
+0

'item'の名前が可変であれば、どのようにdeleteを使用しますか? – Rob

+0

'データを削除する[toDelete]' – TimWolla

関連する問題