Arrays 从数组中删除多个项-重复使用状态

Arrays 从数组中删除多个项-重复使用状态,arrays,reactjs,redux,react-redux,redux-thunk,Arrays,Reactjs,Redux,React Redux,Redux Thunk,我正在用redux开发react应用程序。我想从数组中删除多个项。我在我的reducer中写了下面的代码,它从数组中删除单个项,但我想删除多个项 case DELETE_LINK: let dltLink = state.filter(item => { return item._id !== action.data._id }) return { ...state, parentFolderlinks

我正在用redux开发react应用程序。我想从数组中删除多个项。我在我的reducer中写了下面的代码,它从数组中删除单个项,但我想删除多个项

case DELETE_LINK:  
    let dltLink = state.filter(item => {
            return item._id !== action.data._id

    }) 
    return {
        ...state,
        parentFolderlinks: dltLink
    };

您可以映射状态并通过一个函数运行它,该函数可以确定您是否想要保留它(我不知道您的逻辑是什么),然后在最后返回数组

const keepThisItem =(item) => {
   return item.keep
}

case DELETE_LINK:
    let itemsToKeep = []  
    let dltLink = state.map(item => {
        if(keepThisItem(item){
            itemsToKeep.push(item)
        }
        return itemsToKeep
    }) 

似乎您想从
状态.parentFolderlinks
中筛选链接,如果您在
操作.data.ids
中有ID,您可以

案例删除链接:
const parentFolderlinks=state.parentFolderlinks.filter(项=>{
return!action.data.id.includes(item.\u id);
});
返回{
状态
父文件夹链接
};

您希望根据什么筛选项目?我假设多个项目不会有相同的
id

下面的示例显示了如何在redux中过滤多个项。在这种情况下,食品以
类型
水果
的项目表示,并删除所有其他项目

//所有类型食物的初始状态
常量初始状态={
“食品”:[
{
名称:“苹果”,
类型:“水果”
}, 
{
名称:“橙色”,
类型:“水果”
}, 
{
名称:“花椰菜”,
类型:“蔬菜”
}, 
{
名称:“菠菜”,
类型:“蔬菜”
}, 
]
}
//演示如何删除多个项目的示例reducer
导出默认值(state=initialState,{type,payload})=>{
开关(类型){
//删除多个类型为“水果”的项目
//也就是说,花椰菜和菠菜都被去掉了,因为它们都是蔬菜
案例删除\u项目\u无\u类型\u水果:
constonlyfruits=state.foods.filter(food=>food.type==“fruit”);
返回{
状态
食物:仅限水果
}
}
}

对于在数组上进行迭代,
forEach
方法I(不带返回)就是您想要的。在这里使用
map
将返回要保留的数组数组。不确定这是否回答了op的问题,eitherID往往表示唯一性(或者应该如此!),因此使用任何特定的id可能都不允许从数组中删除多个元素。您能否提供更多关于需要从链接数组中删除哪些内容的详细信息?
return!action.data.ids.includes(item.id)
更有效,因为它不必遍历整个
action.data.ids
数组。