2014-02-20 58 views
0

我有以下的Javascript對象我的目標不會刪除

var datasets = []; 

datasets.push({ 
    DataItem1: { 
     label: "My Title", 
     data: [[9], [11]] 
    }, 
    DataItem2: { 
     label: "Another title", 
     data: [[139], [3], [0], [1]] 
    }, 
    DataItem3: { 
     label: "My Label", 
     data: [[1], [3]] 
    } 
}); 

我想刪除基於第二列表中的項目。不過,我只知道這個標籤值

這是我到目前爲止

var labelsToExclude = []; 

labelsToExclude.push("Another title"); 

var myDataSet = datasets[0]; 
var dataToUse=[]; 

for (x in myDataSet) { 
    var dataItemLabel = myDataSet[x].label; 
    if (labelsToExclude.indexOf(dataItemLabel) < 0) {  
     delete myDataSet.x 
    } 
} 
dataToUse.push(myDataSet); 

正如你所看到的嘗試,我開始在我的對象3項,我期望在那裏此代碼運行後只有2。

有人可以解釋我做錯了什麼,我讀了How do I remove a property from a JavaScript object?,它沒有幫助。

回答

4

您正在嘗試在循環從myDataSet,而不是從當前項目中刪除「X」爲

delete myDataSet.x 

應該

delete myDataSet[x]; 
+0

那麼簡單,這是完美的,感謝您在百忙時間,並在你的頭像中戴上一頂優秀的帽子。 – MyDaftQuestions

+0

接受答案,如果你得到它... –

+2

@AshishMishra,我知道這裏的規則,但是,正如我相信你知道的,在我能做到這一點之前有一段時間的失誤。你也會注意到我已經接受了我發佈的每個問題,所以應該清楚我知道系統是如何工作的!我也不知道你爲什麼覺得你需要警惕這一點,但是我猜你覺得... – MyDaftQuestions