在空字符串上使用JS split函数将返回1,这当然是有道理的。
我有一种情况需要在逗号分隔的字符串中计算ID的数量。当在空字符串上使用string.split(',').length
时,它将返回1,这将与字符串内部的ID的实际数量不对应(但这只是拆分的默认行为,因为返回单个 - 空 - 元素)。
为了抓住这个,我写了下面的代码。但有些事情告诉我,这不是最优秀的解决方案。我想改进下面的代码,从而更好地理解最佳实践。
希望有人可以在这里提供帮助,并就我的问题提供一些反馈: 对于空字符串,以逗号分隔的字符串计算ID数量的最佳方法是什么?
var str1 = '12,16,91,89,43';
var str2 = '';
if(!str1)
countRight = 0;
else
countRight = str1.split(',').length;
if(!str2)
countWrong = 0;
else
countWrong = str2.split(',').length;
答案 0 :(得分:0)
您的代码有点冗长。 <怎么样
count = str ? str.split (',').length : 0;
或更短但更隐蔽:
count = +(str && str.split(',').length);
甚至
count = str.length && str.split (',').length;
可以缩短为
count = (str && str.split (',')).length;
偏离主题:如果您的字符串来自用户输入,我建议您使用正则表达式/\s*,\s*/