我有以下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?并且它没有帮助。
答案 0 :(得分:4)
您正在尝试从myDataSet中删除“x”,而不是for for循环中的当前项
delete myDataSet.x
应该是
delete myDataSet[x];