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

Я работаю над приложением, в котором я могу добавлять группы пользователю. Вы можете выбрать группу из списка, и эта группа будет отображаться над ней. ( Смотрите это фото )

Теперь я хочу, чтобы в раскрывающемся списке вы могли видеть только те группы, к которым вы не принадлежите.

 constructor(props) {
        super(props)
        this.state = {
            groups: [],
            selectedGroups: [],
            group: '',
            isLoading: true,
            show: false
        };
        //bind

        this.getGroups = this.getGroups.bind(this);
        this.addGroup = this.addGroup.bind(this);
    }


//this function will be executed when clicking on button
    addGroup(e) {
        e.preventDefault();
        this.setState({
            selectedGroups: [...this.state.selectedGroups, this.state.group], //hier worden de groepen van die gebruiker in geplaatst
            groups: [] //hier moet iets gebeuren dat this.state.group wordt verwijdert uit de lijst
        })}

Мои группы собственности выглядят так:

[{"id":1,"company_id":1,"name":"Support","created_at":null,"updated_at":null},

{"id":2,"company_id":1,"name":"Administrator","created_at":null,"updated_at":null},

{"id":3,"company_id":1,"name":"Redacteur","created_at":null,"updated_at":null}]

Моя собственность, группа, это выбранная группа при нажатии на кнопку.

Пример: если я выберу Администратора и нажму на кнопку, группа свойств будет иметь значение «Администратор» в качестве значения. Администратор затем будет добавлен в массив выбранных групп. Теперь я хочу, чтобы объект с именем «Администратор» удалялся из массива groups.

Группы свойств должны выглядеть так:

{"id":2,"company_id":1,"name":"Administrator","created_at":null,"updated_at":null},    
    {"id":3,"company_id":1,"name":"Redacteur","created_at":null,"updated_at":null}]

Как я могу удалить объект из массива объектов?

1 Ответ

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

На мой взгляд, в вашем случае вам нужно найти индекс элемента в массиве, который вы хотите удалить, используя метод ниже:

const index = array.findIndex(value => value.id === id);

и затем удалите этот индекс:

const result = array.splice(index, 1);

Где array - это ваш массив, в котором вы хотите удалить объект, id это идентификатор объекта, который следует удалить. Вы также можете проверить, основал ли findIndex что-либо, прежде чем делать splice и если ничего не найдено findIndex вернет -1.

findIndex doc ref

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...