如果我的问题没有道理,我深表歉意,并且我将尝试更好地解释它...我有一个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中?

最佳答案

为什么不使用findIndex()代替find?

如果您有索引,则可以执行以下操作

vendeeCatalogs [x] .CatalogGenerationGUID = ...

关于javascript - 如何从对象中的对象数组更新对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59687749/

10-17 02:54