Итак, у меня есть этот основной массив:
const purchaseData = [
{
product_id: "product_id_1",
localized_title: "Product Title 1",
... other attributes
},
{
product_id: "product_id_2",
localized_title: "Product Title 2",
... other attributes
},
И я бы хотел заменить localized_title на массив, содержащий обновленный localized_title для определенных product_ids
пример:
updatedData = [
{
product_id: "product_id_1",
localized_title: "Updated Product Title 1",
...other random attributes // different from the attributes in the objects of purchaseData
},
];
В этом случае только первому дочернему элементу purchaseData необходимо обновить свой localized_title. Есть ли элегантный способ сделать это без использования For ... lopps и без изменения данных? Я пробовал много способов, но я, кажется, пишу слишком много строк кода (не очень чистый).
Это то, что я пытался:
const updatedData = purchaseData.map(obj => {
const foundObject = originalProducts.find(
o => o.product_id === obj.product_id,
);
const localized_title = foundObject && foundObject.localized_title
if (localized_title) {
return {...obj, localized_title}
}
return obj;
});