Javascript:计算字符串变量中数组的出现次数并返回长度

Javascript:计算字符串变量中数组的出现次数并返回长度,javascript,jquery,arrays,string,Javascript,Jquery,Arrays,String,我想创建一个函数,它可以接收搜索词,并找出其中有多少出现在字符串中,然后输出如下: var search = ["ab", "cd", "ef"]; var string = "ab yz cd wx ef uv ab yz cd"; 我可以用一个数组来实现这一点,但现在我有两个单独的数组需要使用。任何想法都会有帮助!我想我想拆分字符串,但不知道如何使用“search”变量中的文本进行搜索,以计算拆分字符串中的内容。使用and方法进行搜索 var搜索=[ab,cd,ef]; 变量字符串=ab

我想创建一个函数,它可以接收搜索词,并找出其中有多少出现在字符串中,然后输出如下:

var search = ["ab", "cd", "ef"];
var string = "ab yz cd wx ef uv ab yz cd";
我可以用一个数组来实现这一点,但现在我有两个单独的数组需要使用。任何想法都会有帮助!我想我想拆分字符串,但不知道如何使用“search”变量中的文本进行搜索,以计算拆分字符串中的内容。

使用and方法进行搜索

var搜索=[ab,cd,ef]; 变量字符串=ab yz cd wx ef uv ab yz cd; console.log //迭代数组 search.mapfunctionv{ //初始化数组元素的对象 var obj={}; //将数组元素定义为计数的数目 //可以使用RegExp从字符串生成regex //构造函数并使用modifyer`g`进行全局匹配 obj[v]=string.matchnew RegExp'\\b'+v+'\\b',g'.length; //返回对象 返回obj; } 您可以创建一个空对象,迭代搜索,并用零初始化对象中想要的项

然后,仅字符串和计数键为对象的项

变量搜索=[ab、cd、ef], 字符串=ab yz cd wx ef uv ab yz cd, count=Object.createnull; search.foreacha函数{ 计数[a]=0; }; string.split“”。ForEachA函数{ 计数中的a&&count[a]+; }; console.logcount 您可以搜索数组,并将数组中每个项目的对象作为键及其值返回字符串中相应的出现长度:

变量搜索=[ab、cd、ef], 字符串=ab yz cd wx ef uv ab yz cd, 结果=search.mapfunction项{ 返回{ [项目]:string.splititem.length-1 }; };
console.logresult;我再问一次这个问题。这是不是像现在每个人都要做的测试之类的。这个问题每隔一小时就会被问一次你自己有没有尝试过解决这个问题?你被什么粘住了?
[{"ab": 2}, {"cd": 2}, {"ef": 1}]