я написал немного говно кода, как упростить этот код?
есть обьект
object = {
article: 10,
blog: 5,
officialclarification: 1,
qa: 1,
questionanswer: 2,
....
}
есть еще какой то массив
array = [
{
links: [
{ ... parentType: 'blog' },
{ ... parentType: 'article' },
{ ... parentType: 'officialclarification' },
{ ... parentType: 'questionanswer' },
{ ... parentType: 'opendialog' },
]
},
....
]
теперь моя функция
function searchParentType(data, key, value) {
if (Array.isArray(data)) {
data.forEach(item => searchParentType(item, key, value))
} else {
if (data.parentType === key) data.count = value
}
}
function changeCount() {
Object.entries(object).forEach(([key, value]) => {
array.forEach(item => searchParentType(item.links, key, value))
})
}
результат
array = [
{
links: [
{ ... parentType: 'blog', count: 5 },
{ ... parentType: 'article', count: 10},
{ ... parentType: 'officialclarification', count: 1 },
{ ... parentType: 'questionanswer', count: 2 },
{ ... parentType: 'opendialog'},
]
},
....
]
p/s: самый главный минус в моем коде цикл продолжается в моем коде даже если этот условия(data.parentType === key) выполнился...