filter()
имеет более функциональный подход, который имеет свои преимущества. Работать с неизменяемыми данными намного проще, параллелизм и безопасность ошибок.
Но в вашем примере вы делаете нечто подобное, создавая массив items
. Таким образом, вы по-прежнему не изменяете существующие массивы.
const items = [...this.state.items];
Создает копию this.state.items
, поэтому она не будет мутировать их, как только вы выполните splice()
.
Таким образом, учитывая ваш подход, он ничем не отличается от filter()
, поэтому теперь он сводится к вопросу вкуса.
const items = [...this.state.items];
items.splice(index, 1);
VS
this.state.items.filter(i => ...);
Также производительность может быть принята во внимание. Проверьте это test например.