Javascript 对字符串中的元素进行计数
我有一个字符串,它有逗号分隔的值。如何计算字符串中以逗号分隔的元素数? e、 下面的字符串有4个元素Javascript 对字符串中的元素进行计数,javascript,Javascript,我有一个字符串,它有逗号分隔的值。如何计算字符串中以逗号分隔的元素数? e、 下面的字符串有4个元素 string = "1,2,3,4"; myString.split(“,”).length首先将其拆分,然后对数组中的项进行计数。像这样: "1,2,3,4".split(/,/).length; 所有的答案都建议使用与myString.split(',').length等价的内容,这可能会导致不正确的结果,因为: "".split(',').length == 1
string = "1,2,3,4";
myString.split(“,”).length首先将其拆分,然后对数组中的项进行计数。像这样:
"1,2,3,4".split(/,/).length;
所有的答案都建议使用与myString.split(',').length等价的内容,这可能会导致不正确的结果,因为:
"".split(',').length == 1
空字符串不是你想考虑的1个项目的列表。
一个更直观但仍然简洁的实现是:myString.split(',').filter((i) => i.length).length
这不考虑0字符字符串作为列表中的元素。
"".split(',').filter((i) => i.length).length
0
"1".split(',').filter((i) => i.length).length
1
"1,2,3".split(',').filter((i) => i.length).length
3
",,,,,".split(',').filter((i) => i.length).length
0
非常类似,但不是完全重复。这没有错,只是定义不同而已。空字符串也是一个值;)例如,试试“,”。是的,但是你会说在大多数用例中,一个空字符串被认为是一个1值的列表吗?所以“a”中的项目数等于“”中的项目数?我不会说得太多,但肯定足够多了。如果没有值,您可能根本不想运行该函数请注意,浏览器对箭头函数的支持仍然有限:目前我建议使用常规函数,而不是you's right@Wolph。看起来IE11今天在全球仍占有12%的市场份额。什么是string=“1,2,3,4”?
"".split(',').filter((i) => i.length).length
0
"1".split(',').filter((i) => i.length).length
1
"1,2,3".split(',').filter((i) => i.length).length
3
",,,,,".split(',').filter((i) => i.length).length
0