Есть изначально вот такая конструкция
{
books: [
{
id: '200',
author: '4124',
name: '412',
imgUrl: 'data:image/jpeg;base64'
}
]
}
Нужно как-то пройтись по массиву объектов в свойстве books
, и заменить объект в массиве тем, который проходит по id
, и затем вернуть новый объект со свойством books
, в котором мы заменили объект,не изменяя старый объект.
Т.е. по итогу должно вернуться новый объект
{
books: [
{
id: '200',
author: 'new author',
name: 'new name',
imgUrl: 'some img'
}
]
}
Возвращаем новый объект со свойством books
, но как заменить объект и добавить в массив я что-то не знаю.
const changedItem = action.book
return Object.assign({}, state, {
books: state.books.map(item => item.id === changedItem.id ? changedItem : item)
});
Если я ваc правильно понял, то должно это вроде выглядеть так:
var object = {
books: [
{
id: '200',
author: '4124',
name: '412',
imgUrl: 'data:image/jpeg;base64'
}
]
};
function replace(object, searchID){
var replacedObject = object;
for(var i = 0;i<replacedObject.books.length;i++){
if(replacedObject.books[i].id != searchID) continue;
replacedObject.books[i].author = 'newAuthor';
return replacedObject;
}
}
alert(replace(object, 200).books[0].author);
старый объект при этом не меняется, а новый можно заносить в переменную вызовом функции у меня выводит вместо 4124 - newAuthor
Object.books.forEach(function(item, i, arr) {
if(item.id == "200") {
Object.books[i] = {id: "200", ...} // Новый объект с новыми свойствами
// Или так Object.books[i].author = "..."; и так для каждого изменяемого свойства
}
})
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеРешил поработать на чистом JS, и возник банальный вопрос, который не могу понять как решить:
В программу нужно передавать некоторый параметр, но передача должна осуществляться из файла indexhtml, то есть из файла на котором располагается...