让我说我有这个变量
this.mylist.push([{key:{"test1":name,"test":desc,"hi i am a test":other,"none":type,"amount":0} }]);
这将添加到数组mylist中 但是,我希望在某些条件下删除当前创建的列表,方法是通过唯一键删除它
我想拼接对象数组,以便删除该值以防止重复
我试过
this.mylist.splice(this.mylist.indexOf(key), 1);
但没有奏效 我尝试通过获取包含这些子值的唯一键来删除数组
我也试过
this.mylist.splice(this.mylist.indexOf([{key}]), 1);
可以帮助我的人:(
CheckBox(values,values,values) {
this.bool = (this.mylist.indexOf(key) === -1);
if (this.bool) {
this.mylist.push([{key:{"key":key,"naam":naam,"beschrijving":beschrijving,"type":type,"aantal":aantal} }]);
}
else {
this.mylist.splice(this.mylist.indexOf(key), 1);
}
}
上述功能是用户点击复选框时的事件。如果为true,则必须使用值填充数组。否则必须删除具有唯一键的数组以防止重复
答案 0 :(得分:1)
在push语句之后,this.mylist将包含自推送以来的数组数组
[{key:{"test1":name,"test":desc,"hi i am a test":other,"none":type,"amount":0} }]
这是一个数组,你不能用密钥访问数组(在这种情况下你不能访问this.mylist [0],如果上面的数组作为第一个元素添加,使用this.mylist.indexOf(key))
一种可能的解决方案是你可以将mylist的类型作为对象而不是数组,然后你可以像这样添加元素
[{key:{"test1":name,"test":desc,"hi i am a test":other,"none":type,"amount":0} }];
this.mylist.key = {"test1":name,"test":desc,"hi i am a
test":other,"none":type,"amount":0} }
稍后你可以使用像这样的复选框功能
CheckBox(values) {
this.bool = (this.mylist.key === -1);
if (this.bool) {
this.mylist.key={"key":key,"naam":naam,"beschrijving":beschrijving,"type":type,"aantal":aantal};
} else {
delete this.mylist.key;
}
}
Checkbox功能背后的逻辑似乎不正确,因为该函数将检查mylist是否包含密钥,如果它不存在则将密钥添加到mylist并删除它是否存在。如果这是你的最终目标,那么这种逻辑就无法正确处理重复项的删除。