javascript: запись значения в ассоциативный массив в одну строку
Есть такой код:
let tmp: any = this.state.states;
tmp[event.target.id] = event.target.checked;
this.setState({
states: tmp
});
Подскажите, как бы в 1 строчку покрасивее сформировать tmp массив, т.е. что-то типа
this.setState({
states: [...this.state.states, event.target.id: event.target.checked]
});
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
как бы в 1 строчку покрасивее сформировать tmp массив, т.е. что-то типа
Так и запиши...
this.setState(old => {
return {...old.states, [event.target.id]: event.target.checked}
});
Или так
this.setState(old => ({...old.states, [event.target.id]: event.target.checked}));
Тест
let obj = {'xxx': 10, 'yyy': 11}
obj = {...obj, 'yyy': 12}
console.log(obj)