首页 > 解决方案 > 如何删除多个数组项

问题描述

我正在使用反应 js。我想添加一个选项来删除多个项目。但是在删除每个项目后,页面会刷新道具而不是删除剩余的项目。

如何删除多个项目?

const onDeleteAll = arr => {
        
    arr.forEach(element => {
      const formData = {
        id:element
      }

      props.onDeleteSubmit(formData, function(){ // pass id to delete func
        console.log('deleted')
      })
    });
  }
  useEffect(() => {
    props.getPriceType(); // fetching data
  }, []);

减速器:

case DELETE_PRICE_TYPE_SUCCESS_ACTION:
          const myDeletedArray = draft.list;
          const objDeletedIndex = myDeletedArray.filter(obj => obj.id !== action.payload._id);
          draft.list = objDeletedIndex; //update data
          break;

标签: javascriptreactjsapiredux-sagaredux-reducers

解决方案


var id = 23;
var list = [{
  id: 23,
  value: "JOHN"
}, {
  id: 23,
  value: "JADE"
}, {
  id: 24,
  value: "JADE"
}, {
  id: 25,
  value: "JAMES"
}];

var indexes = [];
const templist = list.filter((item, ind) => {
  return item.id !== id
});
list = templist;
console.log(list);

首先获取与要删除的数组中的项目匹配的索引列表。遍历上面的列表,并通过拼接操作从每个数组中删除项目。


推荐阅读