我试图找到数组中单词总出现次数 Here我找到了一个解决方案并稍作改动:
var dataset = ["word", "a word", "another word"];
var search = "word";
var count = dataset.reduce(function(n, val) {
return n + (val === search);
}, 0);
但是,而不是3我只得到1.所以它只找到第一个元素,它只是word
。但是如何查找包含word
?
答案 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)
运算符===表示:相等对象和相等类型。
如果您正在寻找包含'搜索'的每个数组元素。你需要使用不同的运算符。
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)