Как обновить объект из массива объектов, находящихся в объекте? - PullRequest
0 голосов
/ 10 января 2020

Мои извинения, если мой вопрос не имеет смысла, и я попытаюсь объяснить его лучше ... У меня есть объект on, и в этом объекте у меня есть массив объектов. Я пытаюсь обновить один из найденных объектов в массиве объектов, я обновляю найденный объект, но он не обновляет исходный объект в массиве, сейчас у меня есть

let vendeeCatalogs = workingVendorImplementorInfo.SVendorCatalogImplementorInfo; // This the array of objects 

if (vendeeCatalogs.length > 0) {
    for (let i = 0; i < vendeeCatalogs.length; i++) {
        foundCatalog = workingVendorImplementorInfo.SVendorCatalogImplementorInfo.find(function (x) { return x.CatalogID == vendeeCatalogs[i].CatalogID });
        if (foundCatalog) {
            foundCatalog.CatalogGenerationGUID = vendeeCatalogs[i].CatalogGenerationGUID;
            foundCatalog.BeginEffectiveDate = vendeeCatalogs[i].BeginEffectiveDate;
            foundCatalog.EndEffectiveDate = vendeeCatalogs[i].EndEffectiveDate;
            foundCatalog.Multiplier = vendeeCatalogs[i].Multiplier;
            foundCatalog.Discount = vendeeCatalogs[i].Discount;
            foundCatalog.UOMPrecisionTypeID = vendeeCatalogs[i].UOMPrecisionTypeID;
            foundCatalog.IsSelected = vendeeCatalogs[i].IsSelected;
        }
    }
}

Я могу видите, что это неправильно, потому что все, что он делает, обновляет foundCatalog, а не исходный объект, который был найден. Итак, как мне найти объект и обновить этот объект, чтобы изменения были сохранены в workingVendorImplementorInfo.SVendorCatalogImplementorInfo?

1 Ответ

2 голосов
/ 10 января 2020

Почему вы не используете findIndex () вместо find?

Если у вас есть индекс, вы можете просто сделать что-то вроде

vendeeCatalogs [x] .CatalogGenerationGUID = ...

...