Хороший способ обновить каждый элемент в массиве внутри магазина

У меня есть массив объектов внутри моего хранилища данных в Svelte, я хотел бы обновить одно свойство в каждом отдельном объекте в массиве, т.е. я хочу обновить свойство автора внутри массива в моем магазине до текущего имени пользователя, это что я сейчас делаю:

let tempArray = $myReviewDataStore;
for(var i=0; i < tempArray.length; i++){
    tempArray[i].author = username;
}
myReviewDataStore.update(data =>{
    return tempArray;
})

Должен быть способ сделать это лучше, верно?

Спасибо!


person Hank    schedule 18.10.2020    source источник
comment
Может быть, Array.forEach или Array.map ?. Я не уверен, что они станут лучше. Полагаю, это зависит от вашего определения «лучше». Что не так с циклом for, который у вас уже есть?   -  person 2pha    schedule 19.10.2020


Ответы (2)


Это просто более короткий способ сделать это:

$myReviewDataStore = $myReviewDataStore.map(
 obj => ({...obj, author: username})
);
person grohjy    schedule 18.10.2020