Почему array.filter игнорирует значение 0 (не индекс)?
1) непонятно что вы хотите получить на выходе
2) коллбэк должен возвращает boolean значение, если это true, то item остается, а если это false, то "удаляется", а если мы вернем 0, то к ему оно будет приведено, верно, к false,const xArray = [-1, 0, 1, 2, 3, 4, 5, 11];
let xArray2 = xArray.filter((x) => {
  return 0 <= x && x <= 10;
});
xArray2;  // [0, 1, 2, 3, 4, 5]
Он 0 воспринимает как false, поэтому исключает его из результата фильтра. Используй строгую проверку ===.Тут