Всем привет, есть структура данных:
const data = [
[
{ id: 1, key: 10, val: 0 },
{ id: 2, key: 11, val: 0 },
],
[
{ id: 3, key: 1, val: 0 },
{ id: 4, key: 2, val: 0 },
],
[
{ id: 5, key: 9, val: 0 },
{ id: 6, key: 5, val: 0 },
{ id: 7, key: 4, val: 0 },
{ id: 8, key: 12, val: 0 },
]
]
Мне необходимо вернуть новый массив с обновлёнными данными, например, для id 4
Мой вариант реализации:
const update = (array, key, val) => {
return array.reduce((accumulator, currentValue) => {
const item = currentValue.reduce((acc, c) => {
if (c.key === key) {
c.val = val
}
acc.push(c)
return acc
}, [])
accumulator.push(item)
return accumulator
}, [])
}
console.log(update(data, 4, 100));
Подскажите, можно ли решить более оптимально?