как это?(примечание: это изменяет существующий объект)
const list = [
{
"name": "Hulk",
"series": [
{
"name": "mike",
"id": "100",
},
{
"name": "steve",
"id": "200"
}
]
}
];
function addDetail(books, search, detail){
books.forEach(book => {
var entry = book.series.find( item => {
return item.name === search.name && item.id === search.id;
});
if(entry){
entry.detail=detail;
}
})
return books;
}
console.log(addDetail(list, {"name": "mike","id": "100"}, { "author": 'apple', "year": 1956}))
.as-console-wrapper { max-height: 100% !important; top: 0; }
Вы можете заменить синтаксис стрелки обычным синтаксисом функции и использовать lodash для forEach
и find
для повышения совместимости со старыми версиями браузера.