javascript - 如何删除多个数组项
问题描述
我正在使用反应 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;
解决方案
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);
首先获取与要删除的数组中的项目匹配的索引列表。遍历上面的列表,并通过拼接操作从每个数组中删除项目。
推荐阅读
- elasticsearch - Elasticsearch 在顶级聚合中包含其他字段
- c++ - 键值映射中的部分查找,其中键本身是键值映射
- vuejs2 - 为什么第一次访问时没有调用激活的生命周期挂钩
- typescript - 笑话 TypeScript 类“没有重载需要 1 个类型参数”
- sql - 选择邮政编码并放入新列
- selenium-chromedriver - 如何在 beforeSession webdriverIO+Cucumber 中从 chromeOptions 设置参数
- android - 为什么 Kendo Dropdownlist 不适用于 chrome for android?
- c# - DataGrid DateTime IValueConverter,仅编辑时间,保留日期
- python - python中的多个循环
- php - 什么是在 PHP7 中使用匿名类的好例子