Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从列表数组中删除元素的最佳解决方案_Javascript_Arrays_Angular - Fatal编程技术网

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);
...