如何从数组[JS]中删除新行字符串

时间:2019-02-24 15:59:51

标签: javascript arrays string

这里我有一些本地函数,应该将包含一些值的HTML标记(键)转换为数组。每个带有某些产品的结束标签都有2x'\ n',该字符包含在数组中。

我该如何删除断行?

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

输出:

  

“ [”钻“,” 99“,” 5“,”↵↵“,”锤子“,” 10“,” 50“,”↵↵“,...]”

4 个答案:

答案 0 :(得分:1)

尝试通过排除new lines来过滤数组。

const outputWithoutNewLines = output.filter(el => el !== '\n');

答案 1 :(得分:0)

您可以使用filter返回:return catalogArray.filter(v => v!='\ n');

答案 2 :(得分:0)

您可以使用/^\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);

答案 3 :(得分:0)

您可以使用过滤器功能,我发现您的某些项目具有重复的/n字符,我的解决方案可以解决这种情况:

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

例如:

["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"]