gpt4 book ai didi

javascript - 如何通过某种规则从 redux 状态中删除某些项目

转载 作者:行者123 更新时间:2023-12-01 00:43:41 25 4
gpt4 key购买 nike

如果对象中的某人 id 与有效负载中的 id 相同,我想删除对象数组中的项目。

我的代码:

case "MINUS_PRODUCT_FROM_CART": {
const arr = state.cart.forEach((item, i) => {
if (item[i].id === payload.id) {
arr.splice(i, 1);
}
});
return {
...state,
cart: arr,
};
}

我的有效负载外观:

[
{title: "Product 1", price: "128", id: "15"},
{title: "Product 2", price: "9", id: "26"},
{title: "Product 2", price: "9", id: "26"}
]

如果有效负载 id === 26,我只想删除一个具有此 id 的对象

谢谢!

最佳答案

IMO,您可以将其写得更简洁,而无需声明任何额外的变量:

return {
...state,
cart: state.cart.filter(item => item.id !== action.payload.id),
};

再次查看您的问题后,我意识到您只想删除第一个。我们仍然可以在这里使用过滤器,只需添加一个检查:

let removed = false;

return {
...state,
cart: state.cart.filter(item => {
if (!removed && item.id !== action.payload.id) {
removed = true;
return true;
}
return false;
}),
};

关于javascript - 如何通过某种规则从 redux 状态中删除某些项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57547571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com