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

时间:2016-04-13 20:07:01

标签: javascript jquery

我试图找到数组中单词总出现次数 Here我找到了一个解决方案并稍作改动:

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

Here is the fiddle

但是,而不是3我只得到1.所以它只找到第一个元素,它只是word。但是如何查找包含word

的所有元素

4 个答案:

答案 0 :(得分:1)

试试这个:

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。

答案 1 :(得分:0)

你必须使用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);

答案 2 :(得分: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)




答案 3 :(得分:0)

您可以使用String#indexOf



findViewById