我正在尝试从嵌套数组中删除一个对象。我的情况是数组多次具有相同的对象,我应该是这样。所以我怎么能从数组中删除一个对象,即使它们是其中的相同对象。
我过去的尝试是filter
和slice
方法。但是它们实际上是一次删除所有相同的对象。
const data = {
{ id:1, name:'test'},
{ id:1, name:'test'},
{ id:1, name:'test'},
{ id:2, name:'test2'},
{ id:2, name:'test2'},
}
执行一次后的预期结果:
{ id:1, name:'test'},
{ id:1, name:'test'},
{ id:2, name:'test2'},
{ id:2, name:'test2'},
答案 0 :(得分:0)
这些实际上是我的redux商店的一部分,在这里我需要多次将同一物品放入购物车,然后结帐。所以我想保留重复的对象,并在单击时仅删除一个对象
从此响应中,我将猜测您需要在显示对象时存储对象的索引(在任何框架中反应),然后在将操作分派到remove_item时将索引作为有效负载传递。没有最小的完整示例很难确定,但是有了这些给定的内容,您将需要:
const data = {
items: [
{ id:1, name:'test'},
{ id:1, name:'test'},
{ id:1, name:'test'},
{ id:2, name:'test2'},
{ id:2, name:'test2'},
],
};
const removeItem = (items, index) => ([ ...items.slice(0, index), ...items.slice(index + 1)]);
console.log(data);
data.items = [ ...removeItem(data.items, 2) ] ;
console.log(data);