过滤redux存储项目数组以查找重复项

时间:2018-09-26 07:45:06

标签: javascript reactjs redux

我有以下减速器:

case INIT:
  return {
    ...state,
    items: [...state.items, ...action.payload],
  };

我需要某种方式检查state.items数组中是否是来自action.payload数组的项,并且不要将它们包括在state.items中。我有这样的代码:

[...state.items.filter(item => item !== action.payload)],

但这不是我所需要的,它不起作用。有人可以帮我吗?

2 个答案:

答案 0 :(得分:2)

处理原始类型最简单的方法是使用Set

case INIT:
    return {
        ...state,
        items: [...new Set(state.items.concat(action.payload))],
    }

答案 1 :(得分:0)

您应该过滤payload

case INIT:
      const { items } = state;
      const newItems = action.payload.filter(item => !items.includes(item))]
      return {
        ...state,
        items: items.concat(newItems),
      }