打字稿通过父键删除对象数组
typescript remove object array through parent key
假设我有这个变量
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 时,数组必须填充值。否则必须删除具有唯一键的数组以防止重复
在 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,如果存在则将其删除。如果这是您的最终目标,此逻辑无法正确处理删除重复项。
假设我有这个变量
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 时,数组必须填充值。否则必须删除具有唯一键的数组以防止重复
在 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,如果存在则将其删除。如果这是您的最终目标,此逻辑无法正确处理删除重复项。