Javascript 从列表数组中删除元素的最佳解决方案
因此,我有一个自定义类型的数组,用于:Javascript 从列表数组中删除元素的最佳解决方案,javascript,arrays,angular,Javascript,Arrays,Angular,因此,我有一个自定义类型的数组,用于: List { task: string; id?: number; status?: boolean; } 在这里,我想删除具有List.status==true的元素。我为此尝试了两种方法,第一种方法非常简单,它需要.filter(): 这个方法的问题是,即使它返回删除了need元素的列表,在修改数组后,它会恢复到编辑+添加元素之前的状态,所以我使用了第二个方法,它相当长,并且需要.filter()和.forEach() 是否有
List {
task: string;
id?: number;
status?: boolean;
}
在这里,我想删除具有List.status==true
的元素。我为此尝试了两种方法,第一种方法非常简单,它需要.filter()
:
这个方法的问题是,即使它返回删除了need元素的列表,在修改数组后,它会恢复到编辑+添加元素之前的状态,所以我使用了第二个方法,它相当长,并且需要.filter()和.forEach()
是否有可能缩短此方法,或者是否有另一种方法也适用于angular?对于想要使用can的人,可以使用:myArray=\uuu0.without(myArray,itemToRemove) 用于角形用途,如波纹管:
import { without } from 'lodash';
...
myArray = without(myArray, itemToRemove);
...
为什么不这样做呢
listArray=listArray.filter(item=>!item.status)代码>因为,它在角度上进行故障诊断。是的,它会修改数组,但是当我向数组中添加新元素时,数组会恢复到以前的状态。filter()这里我只显示了对象的结构,数组被声明为listary:List[]
您在哪里执行此操作?您也可以在lodash中使用\删除
listArray1.filter(item => !item.status).forEach(item => {
listArray2.filter((element, index) => {
if (element === item) {
listArray2.splice(index, 1);
}
});
import { without } from 'lodash';
...
myArray = without(myArray, itemToRemove);
...