У меня есть массив объектов, сохраненных в состоянии с использованием React
this.state= {
people: [
{
name: 'Tom',
hobbies: ['dancing', 'swimming']
}, {
name: 'Dean',
hobbies: ['playing', 'wondering']
}, {
name: 'Jack',
hobbies: ['shooting', 'hiking']
}, {
name: 'Natalie',
hobbies: ['rock', 'cats']
}
]
};
Я хочу обновить состояние, удалив один конкретный элемент из хобби.Я попытался скопировать массив людей из состояния, затем выполнить итерацию каждого объекта person, затем каждого массива хобби, чтобы затем проверить, является ли элемент тем, который я хочу удалить, но мне не удалось его удалить, состояние не изменилось.Я попытался сопоставить его и затем отфильтровать.
Какой самый простой и быстрый способ сделать это?Я только начал изучать React, поэтому я хочу сделать это с помощью setTimeout.
На данный момент у меня есть только код для выбора случайного хобби из случайного человека.
setTimeout(() => {
const randInst = Math.floor(Math.random() * this.state.people.length);
const hobbyIndex = Math.floor(Math.random() * this.state.people[randInst].hobbies.length);
}, 500);