我的目标不是删除

时间:2014-02-20 14:32:26

标签: javascript

我有以下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?并且它没有帮助。

1 个答案:

答案 0 :(得分:4)

您正在尝试从myDataSet中删除“x”,而不是for for循环中的当前项

delete myDataSet.x

应该是

delete myDataSet[x];