如何删除数组的多个对象并更新状态? 我已从复选框中选择了多个项目 这是选定的项目[5,4,3] 我想根据ID删除数组中的所有项目并更新状态 这是我的代码
const [products, setProducts] = useState();
const DeleteProducts = () => {
const selectedItems = [5, 4, 3];
selectedItems.forEach(function(p) {
setProducts(products.filter(prd => prd.id !== p));
});
}
它一次只删除一项,但是我选择了3项。如何在产品状态下显示除3个选定项目以外的其余项目? 谢谢
答案 0 :(得分:2)
您可以将其简化为单个过滤器功能:
// replace_copy_if example
#include <iostream> // std::cout
#include <vector> // std::vector
int main () {
std::vector<int> foo{1,2,3,4,5,6,7};
std::vector<int> bar{10,20,30,40,50,60,70};
for (size_t i = 0; i < bar.size(); i++)
{
if (foo[i]%2==1) foo[i]=bar[i];
}
std::cout << "bar contains:";
for (auto i: foo){ std::cout << ' ' << i; }
std::cout << '\n';
return 0;
}
答案 1 :(得分:1)
const DeleteProducts = () => {
const filteredProducts = products.filter(product => !product.selected);
setProducts(filteredProducts);
};