繁体   English   中英

查找数组中所有出现的单词

[英]Find all occurrences of word in array

我试图找到一个单词在一个数组中出现的总数。
在这里,我找到了一个解决方案并将其更改为:

var dataset = ["word", "a word", "another word"];
var search = "word";
var count = dataset.reduce(function(n, val) {
  return n + (val === search);
}, 0);

这是小提琴

但是,我得到的不是3,而是3。因此,它仅找到第一个元素,即word 但是如何查找包含word所有元素?

尝试这个:

var dataset = ["word", "a word", "another word"];
var search = "word";
count = 0;

jQuery(dataset).each(function(i, v){ if(v.indexOf(search) != -1) {count ++} });

在这里, count为3。

您必须使用String.prototype.indexOf()返回字符串中子字符串首次出现的索引,如果未找到则返回-1

var dataset = ["word", "a word", "another word"];
var search = "word";
var count = dataset.reduce(function(n, val) {
  return n + (val.indexOf(search) > -1 ? 1 : 0);
}, 0);

运算符===表示:相等的对象和相同的类型。

如果要查找包含“搜索”字词的每个数组元素,则需要使用其他运算符。

因此,使用filterindexOf的另一种可能的方法是:

 var dataset = ["word", "a word", "another word"]; var search = "word"; var count = dataset.filter(function(val) { return val.indexOf(search) != -1; }).length; document.write('N. words: ' + count) 

您可以使用String#indexOf

 var dataset = ["word", "a word", "another word"], search = "word", count = dataset.reduce(function(r, a) { return r + !!~a.indexOf(search); }, 0); document.write(count); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM