Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обновить объект (https://javascript.ru/forum/events/84467-obnovit-obekt.html)

ureech 19.09.2022 14:43

Обновить объект
 
Всем привет.

this.groups = [{..},{..},...]
addGroup   = {..}

            updateGroupToList(addGroup){
              
                this.groups.forEach(element => {
                    if(element.id==addGroup.id){
                        element = addGroup;
                    }
                    return ???;
                });
                
            }

Как мне вернуть обновлённый массив объектов this.groups?

рони 19.09.2022 15:18

ureech,
updateGroupToList(addGroup){
                let index = this.groups.findIndex(({id}) => id == addGroup.id);
                this.groups[index] = addGroup;
                return this.groups;
            }

Aetae 19.09.2022 16:13

Если надо именно новый массив, то так:
updateGroupToList(addGroup){
  this.groups = this.groups.map(element => {
    if (element.id === addGroup.id) {
      element = addGroup;
    }
    return element;
  });
}

Только это менее производительно, чем вариант рони.

ureech 20.09.2022 11:52

Ок. Всем спасибо. Aetae, дело в том, что мне вернуть нужно было именно this.groups).


Часовой пояс GMT +3, время: 14:18.