如何从数组中删除单个对象

时间:2018-11-15 16:04:34

标签: javascript arrays node.js object slice

我正在尝试从嵌套数组中删除一个对象。我的情况是数组多次具有相同的对象,我应该是这样。所以我怎么能从数组中删除一个对象,即使它们是其中的相同对象。 我过去的尝试是filterslice方法。但是它们实际上是一次删除所有相同的对象。

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'},

1 个答案:

答案 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);