簡體   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