Как удалить строку новой строки из массива [JS] - PullRequest
0 голосов
/ 24 февраля 2019

здесь у меня есть локальная функция, которая должна преобразовывать некоторые HTML-теги (ключи), которые содержат некоторые значения, в массив.Каждый законченный тег с каким-либо продуктом имеет 2x '\ n', который входит в массив.

Как удалить разрывную строку из массива?

function cleanCatalog(s){
        const separateValues = /<\/?[^>]+(>|$)/g;
        let newLocal = s.replace(separateValues, " ");
        let cleanText = newLocal;
        let catalogArray = [cleanText.split("  ")];
        return catalogArray;
    }

output:

"[" drill "," 99 "," 5 ","↵↵ "," hammer "," 10 "," 50 "," ↵↵ ", ...]"

Ответы [ 4 ]

0 голосов
/ 24 февраля 2019

Вы можете использовать функцию фильтра, я вижу, у вас есть какой-то элемент с дубликатом /n символов, мое решение может решить этот случай:

catalogArray.filter(e => e.replace(/(\r\n|\n|\r)/gm, "") !== '')

ex:

["drill", "99", "5", "\n\n", "hammer", "10", "50", "\n\n\n"].filter(e => e.replace(/(\r\n|\n|\r)/gm, "") !== '')
// =>  ["drill", "99", "5", "hammer", "10", "50"]
0 голосов
/ 24 февраля 2019

Вы можете использовать фильтр для возврата: return catalogArray.filter (v => v! = '\ N');

0 голосов
/ 24 февраля 2019

Вы можете использовать регулярное выражение /^\s*$/ для фильтрации пробелов из массива.Это может быть полезно, если у вас есть такие элементы, как "\n\n" или "\t \n", и вы хотите отфильтровать их тоже

const arr = ["drill", "99", "5", "\n \t", " ", "hammer", "10", "50", "\n\n"];
const ans = arr.filter(x => !/^\s*$/.test(x));

console.log(ans);
0 голосов
/ 24 февраля 2019

Попробуйте отфильтровать массив, исключив новые строки .

const outputWithoutNewLines = output.filter(el => el !== '\n');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...