从列表数组中删除元素的最佳解决方案

时间:2017-12-08 16:18:35

标签: javascript arrays angular

所以,我有一个自定义类型的数组,在Angular中使用:

List {
    task: string;
    id?: number;
    status?: boolean;
}

在这里,我想要删除List.status == true我尝试了2种方法的元素,第一种非常简单,需要.filter()

return listArray.filter(item => !item.status);

这个方法的问题是,即使它返回删除了需要元素的列表,修改数组后,它会在编辑+添加元素之前恢复到它的状态,所以我来到第二个方法,它更长,并且需要.filter()和.forEach():

listArray1.filter(item => !item.status).forEach(item => {
listArray2.filter((element, index) => {
    if (element === item) {
        listArray2.splice(index, 1);
    }
});

是否有可能缩短此方法的方法,或者是否有其他方法也可以使用角度?

1 个答案:

答案 0 :(得分:1)

对于那些想要使用Lodash的人可以使用:myArray = _.without(myArray,itemToRemove)

用于角度使用,如波纹管:

import { without } from 'lodash';
...
myArray = without(myArray, itemToRemove);
...