JavaScript не может отфильтровать пустой элемент из массива

Невозможно отфильтровать пустой элемент из массива

У меня проблема с этим куском кода.

Я импортирую входные данные из файла, отформатированного примерно так, и сохраняю их в постоянном const input :

 aabcccccaaa aaccb shsudbud 

Там нет пробелов или других белых символов, кроме новой строки ‘ n’.

Я получаю информацию таким образом: (LiveServer внутри VS Code)

 const getData = async () ={amp}gt; { const resp = await fetch("./inputs.txt"); const data = await resp.text(); return data; }; 

Тогда я звоню:

 const myFunc = async () ={amp}gt; { const input = await getData(); const rows = input.split("n").map(row ={amp}gt; row); rows.forEach(row ={amp}gt; { const charArr = [...row]; console.log(charArr); }); }; 

После входа в консоль первой и второй строки кажется, что к концу каждого из них прикреплена «» (пустая строка). Третий элемент в порядке, так что я думаю, что он как-то связан с символом перевода строки

Я также попытался создать charArr, выполнив:

 const charArr = Array.from(row); 

Или же

 const charArr = row.split(""); 

Но результат был тот же.

Позже я нашел эту тему: удалить пустые элементы из массива в Javascript

Итак, я попробовал:

 const charArr = [...row].filter(Boolean); 

Но «» все еще находится в конце charArr, созданного из 1-го и 2-го ряда.

 const input = `aabcccccaaa aaccb shsudbud`; const rows = input.split("n").map(row ={amp}gt; row); rows.forEach(row ={amp}gt; { const charArr = [...row]; console.log(charArr); }); 

В этом фрагменте все работает отлично. Так вот, где мои вопросы начинаются:

  1. Почему метод .filter () не работает должным образом в этом случае?
  2. Может ли эта проблема быть специфической для браузера?

Заранее спасибо.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector