Javascript 使用Js中的拆分函数计算字符串中选定字母的总数

Javascript 使用Js中的拆分函数计算字符串中选定字母的总数,javascript,Javascript,我试图从js中的任何字符串中计算p的总数 我的js代码: 但它在控制台中显示输出:4 即使我在sp中放了一个空字符串,它也会显示值1。为什么从1开始计数?输出是正确的。如果拆分中的分隔符出现在字符串的第一个或最后一个位置,则返回空字符串。在您的例子中,对于分隔符“p”,str.split“p”返回一个长度为4的数组[,a,a]。输出是正确的。如果拆分中的分隔符出现在字符串的第一个或最后一个位置,则返回空字符串。在您的例子中,对于分隔符'p',str.split'p'返回一个数组[,a,a]长度为

我试图从js中的任何字符串中计算p的总数

我的js代码:

但它在控制台中显示输出:4


即使我在sp中放了一个空字符串,它也会显示值1。为什么从1开始计数?

输出是正确的。如果拆分中的分隔符出现在字符串的第一个或最后一个位置,则返回空字符串。在您的例子中,对于分隔符“p”,str.split“p”返回一个长度为4的数组[,a,a]。

输出是正确的。如果拆分中的分隔符出现在字符串的第一个或最后一个位置,则返回空字符串。在您的例子中,对于分隔符'p',str.split'p'返回一个数组[,a,a]长度为4。

因为java脚本为您使用的每个拆分函数创建了至少一个空集,所以如果您想要获得任何字母表的精确计数,您需要从最终值中减去1。

因为java脚本为您使用的每个拆分函数创建了至少一个空集,所以如果您想要获得任何字母表的精确计数,您需要从最终值中减去1。

正如Kishor提到的,split返回一个数组,您可以这样做以实现所需的行为:

var sp = "pappa";
var as = sp.split("p");
var as2 = as.join("");
console.log(as2.length);
// number of "p"s
console.log(sp.length - as2.length);

正如Kishor提到的,split返回一个数组,您可以这样做以实现所需的行为:

var sp = "pappa";
var as = sp.split("p");
var as2 = as.join("");
console.log(as2.length);
// number of "p"s
console.log(sp.length - as2.length);
简单地说

    var sp = "pappa";
console.log((sp.match(/p/g)).length);
简单地说

    var sp = "pappa";
console.log((sp.match(/p/g)).length);

在提供标记处拆分,以提供一个数组。如果你打印这个数组,你就会知道为什么它返回4。它还返回一些空字符串。尝试var as=sp.splitp.filtera=>!!A.可能是pappa.split.reducec,ch=>ch=='p'?c+1:c,0;在提供标记处拆分,以提供一个数组。如果你打印这个数组,你就会知道为什么它返回4。它还返回一些空字符串。尝试var as=sp.splitp.filtera=>!!A.可能是pappa.split.reducec,ch=>ch=='p'?c+1:c,0;