splice メソッドを2引数で呼び出したときの仕様を見れば分かることですが、第1引数(インデックス)に負の値を与えると、配列の末尾から数えて第2引数で指定した個数分の要素を削除します。
つまり、質問のコードでは idx
が -1
だったことになります。 idx
をセットするコードが正しく動くかを確認してください。
なお、このような場合は闇雲に filter や delete を試すのではなく(どちらも idx
が負のせいで失敗しています)、 splice についてのドキュメントを読んだり console.log(idx)
で値を確認したりするのを優先すべきです。