Как удалить один объект из массива - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь удалить один единственный объект из вложенного массива. В моем случае Array содержит идентичные объекты несколько раз, и я должен быть таким.так как я могу удалить один единственный объект из массива, даже если они являются идентичными объектами в нем.мои прошлые попытки были 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'},

1 Ответ

0 голосов
/ 15 ноября 2018

это на самом деле часть моего магазина редуксов, где мне нужно несколько раз взять один и тот же товар в корзину, а затем оформить заказ.поэтому я хочу сохранить дубликаты объектов и удалить только один при нажатии, поэтому

, исходя из этого ответа, я собираюсь догадаться, что вам нужно сохранить индекс объекта при его отображении в (Reactнезависимо от структуры), то когда вы отправляете действие для 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);
...