@Speakermen

Как удалять элементы массива при клике пока массив не будет пуст?

Пишу 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);
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект