Я хотел бы иметь функцию для обновления элемента prop. Примерно так
function updateElement(element, propName, value){
element[propName] = value;
}
и выполнение будет выглядеть так:
updateElement(item, "name", "foo")
И это работает, но я хочу передать propName как функцию, чтобы избежать строки: что-то вроде этого:
updateElement(item, x => x.name, "foo");
Но я не уверен, как реализация этого должна выглядеть как у меня, у меня что-то подобное, но оно не работает
function updateElement(element, mapFn, value){
mapFn(element) = value;
}
Можете ли вы помочь мне?
Edit Я хотел бы иметь более общее решение, и я хочу избежать жестко закодированных строк, например, у меня есть:
let item = {name: 'foo', address: {...}, ...};
Я хотел бы вызвать мою функцию следующим образом:
updateElement(item, x => x.name, "foo") <- it will update name, or
updateElement(item, x => x.address, newAddress) <- it will change prop of address