У меня есть объект JavaScript, который выглядит примерно так:
obj = {
person: {
male: true,
age: 10
},
state: {
quit: false,
rain: -3
},
game: {
settings: {
lang: 'en',
os: 'win',
ver: 10,
},
},
next: 55,
last: 10,
};
Я хотел бы создать функцию, которую можно использовать для установки любого из значений объекта, как это:
function updateObj( property /*: string[]*/, value /*: any*/ ) {
obj[property[0]][property[1]] = value; <-- How to generalize?
}
Итак, я могу сделать что-то вроде:
updateObj( ['person', 'male'], false );
updateObj( ['state', 'rain'], 19 );
Однако текущая реализация не будет работать должным образом, если длина параметра свойства не равна 2. Как эта строка кода:
obj[property[0]][property[1]] = value;
обобщить для работы с любым размером массива свойства?