Javascript 我想通过另一个数组中的ID筛选出一个对象数组

Javascript 我想通过另一个数组中的ID筛选出一个对象数组,javascript,arrays,redux,immutability,Javascript,Arrays,Redux,Immutability,我有一个对象数组,即queueDetails[{},{}]。我有来自response的另一个ID数组 “有效负载”:[{“id”:“1”},{“id”:“2”}]。 我想从queueDetails中过滤出负载中的ID,我有以下代码: action.payload.map(payload => { state.queueDetails.filter(queue => queue._id !== payload.id) }) return {

我有一个对象数组,即
queueDetails[{},{}]
。我有来自response的另一个ID数组
“有效负载”:[{“id”:“1”},{“id”:“2”}]
。 我想从
queueDetails
中过滤出负载中的ID,我有以下代码:

action.payload.map(payload => {
       state.queueDetails.filter(queue => queue._id !== payload.id)              
})

return {
           ...state,
           queueDetails: ???
        }

我如何从这里开始

我认为,可以很安全地猜测,您正在构建Redux store reducer的一部分,如果是这样的话,相应的过滤操作的
case
部分可能是这样的:

case FILTER_QUEUE_DETAILS : {
   const { queueDetails } = state,
         { payload } = action,
         submittedIds = payload.map(({id}) => id)
   return {...state, queueDetails: queueDetails.filter(({id}) => !submittedIds.includes(id))}
}
您可以在下面找到快速演示:

const{createStore}=Redux
const defaultState={queueDetails:[{id:1,数据:'somedata'},{id:2,数据:'moredata'},{id:3,数据:'somemore'}]},
FILTER_QUEUE_DETAILS='FILTER_QUEUE_DETAILS',
通知者=(状态=默认状态,操作)=>{
开关(动作类型){
案例筛选器\u队列\u详细信息:{
const{queueDetails}=state,
{payload}=操作,
submittedIds=payload.map(({id})=>id)
返回{…state,queueDetails:queueDetails.filter({id})=>!submittedIds.includes(id))}
}
默认值:返回状态
}
},
store=createStore(Appeducer)
//初始状态
console.log(`//initial state:\n`,store.getState())
//分派操作以筛选出id的1、3
仓库调度({
类型:筛选器\队列\详细信息,
有效负载:[{id:1},{id:3}]
})
//日志结果状态
console.log(`//state on id的1和3被过滤掉:\n`,store.getState())
.as控制台包装{最小高度:100%}

不客气。考虑通过ID的纯数组而不是具有单个属性的对象数组。这可能只是您的代码,总体上看起来是合乎逻辑的。