Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提取模式计数并将其转储到数组中_Javascript - Fatal编程技术网

Javascript 提取模式计数并将其转储到数组中

Javascript 提取模式计数并将其转储到数组中,javascript,Javascript,我的程序目前在一个数组中循环,并计算一个模式在所有数组中出现的次数 例如:如果我在提示符下搜索“”,我将得到: 0,1,2,3,4 但我真的想以 4,1 Asat在数组1中出现4次,在数组2中出现1次 这是阵列中模式出现的次数 有没有关于我如何做到这一点的建议 非常感谢 web = ["cat fat hat mat", "that the who"]; var search = prompt('Search?'); function count(web, pattern) {

我的程序目前在一个数组中循环,并计算一个模式在所有数组中出现的次数

例如:如果我在提示符下搜索“,我将得到:

0,1,2,3,4
但我真的想以

4,1
Asat在数组1中出现4次,在数组2中出现1次

这是阵列中模式出现的次数

有没有关于我如何做到这一点的建议

非常感谢

web = ["cat fat hat mat", "that the who"];

var search = prompt('Search?');

function count(web, pattern)
{
    if (pattern)
    {
        var num = 0;
        var result = [];
        for (i = 0; i < web.length; i++)
        {
            var current = web[i];
            var index = current.indexOf(pattern);
            while (index >= 0)
            {
                result[result.length] = num++;
                index = current.indexOf(pattern, index + 1);
            }
        }
        return result;
    }
    else
    {
        return ("Nothing entered!");
    }
}
alert(count(web, search));
web=[“猫肥帽垫”,“那是谁”];
var search=prompt('search');
函数计数(web、模式)
{
如果(模式)
{
var num=0;
var结果=[];
对于(i=0;i=0)
{
结果[result.length]=num++;
索引=当前.indexOf(模式,索引+1);
}
}
返回结果;
}
其他的
{
返回(“未输入任何内容!”);
}
}
警报(计数(网络、搜索));
var-web=[“猫肥帽垫”、“那是谁”];
var search=prompt('search');
函数计数(web、模式)
{
如果(模式)
{
var num=0;
var结果=[];
对于(i=0;i=0)
num=0;
}
返回结果;
}
其他的
{
返回(“未输入任何内容!”);
}
}
警报(计数(网络、搜索));
这也行

var web = ["cat fat hat mat", "th the who"];

var answer = prompt('Search?');
var search = new RegExp( answer, "g");

function count(web, pattern)
{
    var result = [];
    for(var i=0; i< web.length; i++){
        var matches = web[i].match(search) || [];
        result[i] = matches.length;
    }

    return result.join(",");
}
alert(count(web, search));
var-web=[“猫肥帽垫”、“世界卫生组织”];
var answer=提示(“搜索”);
var搜索=新的RegExp(答案为“g”);
函数计数(web、模式)
{
var结果=[];
对于(var i=0;i
它将返回
[4,1]

这将使用任何数组作为第二个参数

  • 使用
    .match
    而不是
    .indexOf
    ,您将获得 直接匹配
  • 不要忘记声明您的
    i
    var
  • 把验证放在最上面,这样更容易理解
重写:

var web = ["cat fat hat mat", "that the who"]
  , search = prompt('Search?')

function count(web, pattern){
    if (!pattern){
        return "Nothing entered!"
    }

    var result = []
      , exp = new RegExp(pattern, "g")

    for(var i = 0; i < web.length; i++){
        var matches = web[i].match(exp)
        result.push(matches ? matches.length : 0)
    }
    return result
}

alert(count(web, search))
相当于

return;
{
   x: 1
};

也就是说,
返回undefined

我完全听不懂你的问题。您最初在何处搜索“at”?为什么你最终得到0,1,2,3,4?你有一个patters(或者我假设)的列表[“猫肥帽垫”,“那是谁”]你在寻找什么?你能详细说明一下吗?我想返回一个循环模式的计数,并在一个数组中返回它。很抱歉,我不能得到你。你能举个例子吗?示例“at”似乎并不完整。抱歉:我已经更新了questionthat是正则表达式函数,它查找该表达式在字符串中出现的次数,并返回这些出现的数组
count(s,web);
var web = ["cat fat hat mat", "that the who"]
  , search = prompt('Search?')

function count(web, pattern){
    if (!pattern){
        return "Nothing entered!"
    }

    var result = []
      , exp = new RegExp(pattern, "g")

    for(var i = 0; i < web.length; i++){
        var matches = web[i].match(exp)
        result.push(matches ? matches.length : 0)
    }
    return result
}

alert(count(web, search))
return
{
   x: 1
}
return;
{
   x: 1
};