Пишу todo list при клике удаляется один элемент массива
[
{ id: 1, value: "value1" },
{ id: 2, value: "value2" },
]
//или
[
{ id: 1, value: "value1" },
{ id: 3, value: "value3" },
]
По идее при каждом клике элементы должны удалятся пока он не будет пустым
console.log(remove(1)); //при клике отрабатывает только одна функция но не запоминает удаленный элемент
console.log(remove(2));
console.log(remove(3)); //он уже должен был быть пустой
function useState(defaultValue) {
let currentState = defaultValue;
function stateSetter(value) {
currentState = value;
return currentState;
}
return [currentState, stateSetter];
}
const [state, setState] = useState([
{ id: 1, value: "value1" },
{ id: 2, value: "value2" },
{ id: 3, value: "value3" },
]);
function remove(id) {
const idx = state.find((x) => x.id == id);
const index = state.findIndex((x) => x == idx);
state.splice(index, 1);
//return state.map((x) => x).filter((x) => x.id != id);
//return idx.id;
return setState(state);
}
//console.log(state, setState(remove(1)));
//console.log(state, setState(remove(2)));
console.log(remove(1));
console.log(remove(2));
console.log(remove(3));
console.log(state);