我正在尝试使用索引从数组中删除对象:
case DELETE_DRINK:
return {
drinks: state.drinks.filter((drink, i) => drink[i] != payload)
}
但是,阵列保持不变,有什么想法吗?
这是我的阵列:
答案 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
}
有工作的例子!你做得太复杂了!