2012-03-13 3 views
1

私は親オブジェクトからオブジェクトを削除しようとしています...私は 'delete'を直接使うと動作しますが、マルチオブジェクトのループ、私はそれを働かせることができないのですか?私が間違っているのは以下の$。ループです。どのように動的にjavascriptオブジェクトから要素を削除またはリセット

<script> 
rc = { oc: { 'Amt': 30, 'mpA': 3000, 'ipP': 1, 'ppP': 12, 'mpP': 12000 }, 
     tb: { 'Amt': 2000, 'mpA': 100000, 'ipP': 1, 'ppP': 12, 'mpP': 12000 }, 
     bl: { 'Amt': 300, 'mpA': 100000, 'ipP': 1, 'ppP': 12, 'mpP': 12000 } } 

var carObj = {} 
carObj['name'] = 'carObj'; 
console.log (' when created: carObj: ', carObj); 

carObj['rc'] = rc; 
console.log ('when rc Loaded: carObj: ', carObj); 

delete carObj['rc']; 
console.log ('when rc deleted: carObj: ', carObj); 

// up till here delete works as expected. 
    // create two objects 
var carObj1 = {} 
var carObj2 = {} 
    // load objects with the 'rc' object 
carObj1['name'] = 'carObj1'; 
carObj1['rc'] = rc; 
console.log ('when rc Loaded: carObj1: ', carObj1); 

carObj2['name'] = 'carObj2'; 
carObj2['rc'] = rc; 
console.log ('when rc Loaded: carObj2: ', carObj2); 


// !!! Here is where delete doe not work. i don;t get any errors, only rc not deleted from c 
$.each([carObj1, carObj2], function (index, c){  
    console.log('before deleting rc', c); 
delete c[rc]; 
console.log('After deleting rc', c); 
}); 
</script> 

答えて

1

オブジェクトではなくプロパティの名前を渡す必要があります。

delete c['rc']; 
+0

男のdelete['rc']を使用してみてください...私はその上で引用符を逃した信じることができない!! ...多くのおかげで、私はあなたが..私は何かが欠けたHGTと私がいました: ) –

0

ではなくdelete[rc]

関連する問題