我用它来删除字符串中的空格。
returnString.split(" ").filter(substr => substr !== "");
在我的脑海里应该是这样的:
returnString.split(" ").filter(substr => substr !== " ") //note the space between the " "
为什么下面的那个不起作用?是JS语法吗?
答案:如果字符串开头有空格,则用空字符串进行拆分(因此 substr !== "")会在拆分字符串时从返回的数组中删除该空字符串。
returnString.replace(/\s/g,'')
将是一个更好的方法。
""
是一个空字符串。
" "
是一个空格字符。
它们不能互换使用。
""
是一个空字符串。
如果字符串开头有空格,它将用空字符串分割该空格。
这就是为什么需要
substr !== ""
来删除空字符串。
正如评论中提到的,您要根据空格进行拆分,为数组中的所述空格创建索引。
const returnString = 'Hello I am Victor'
const str = returnString.split("").filter(substr => substr !== " ");
console.log(str.join(''))
会给你想要的结果。
但是,正则表达式模式最适合此用例。
// change const to let because
// reassigning a constant variable is not allowed
let returnString = 'Hello I am Victor'
returnString = returnString.replace(/\s/g, '')