按索引过滤数组

时间:2017-08-17 12:38:21

标签: javascript reactjs redux

我正在尝试使用索引从数组中删除对象:

  case DELETE_DRINK:
            return {
                drinks: state.drinks.filter((drink, i) => drink[i] != payload)
            }

但是,阵列保持不变,有什么想法吗?

这是我的阵列:

enter image description here

4 个答案:

答案 0 :(得分:2)

您还可以使用splice按索引删除项目:

array.splice(index, 1);  // splices the item at index

编辑:以下方法不会改变原始array

var missing = array.slice().splice(index, 1);  // first clones the array, and then splices off the item at index

答案 1 :(得分:1)

假设你有饮料,而不是数组,你可以使用元素本身进行检查。 Array#filter回调的第一个参数是

  

数组中正在处理的当前元素。

state.drinks.filter(drink => drink != payload)
//                           ^^^^^             // without index

答案 2 :(得分:0)

state.drinks.filter((drink, i, drinks) => drinks[i] != payload)

答案 3 :(得分:-1)

case actionTypes.DELETE_NOTE:
  return state.filter(note => note.id !== action.payload.id);
 case actionTypes.ANOTHER_WAY_TO_DELETE:
  return state.map(lane => {
    if (arrayFIRST.id === action.payload.id) { // id from second array
      // THEN DO YOUR STAFF
    }

有工作的例子!你做得太复杂了!