为什么
split
在空字符串上给出一个元素?
即在以下情况下如何获得
0
:
let tags = "";
let arr = tags.split(',');
console.log(arr.length);
您可以使用
string
简单地从
arr
中删除空的
filter
元素
let tags = "";
let arr = tags.split(',').filter(x => x);
console.log(arr.length);
let tags = "";
let arr = tags.split(',').filter(x => x);
console.log(arr.length);
else
{
var result=console.log(arr.length);
}
这正是 ECMAScript 规范中
split
函数的本质。以下是 spec 的相关摘录:
如果 this 对象是(或转换为)空字符串,则结果 取决于分隔符是否可以匹配空字符串。如果可以的话 结果数组不包含任何元素。否则,结果数组 包含一个元素,即空字符串。
针对您正在寻找的行为的简单解决方法如下:
let arr = !tags ? [] : tags.split(',');