2014-05-21 24 views
-1

我有一組字符串關鍵字和一組數組列表,用於比較和排除最終字符串顯示中的項目。我插入了一個拆分來隔離每個字符串。比較並排除數組列表中的字符串關鍵字

下面的代碼:

var keywords = "Did the cow jump over the moon?"; 
var keywords_parsed = keywords.split(" "); 
var exclusionlist = ["a","is","of","in","on","it","to","if","so","the","i","we","did"]; 

最終的字符串顯示應該是

cow, jump, over, moon 

的代碼應該排除 「難道」, 「中」,和其他的 「的」。

我該如何做到這一點?

+2

你的問題是什麼?換句話說,你嘗試過哪些方法無效? – AstroCB

+0

我需要使用排除列表(數組)作爲要從關鍵字變量中排除的所有字符串的主列表。因此,如果關鍵字有所不同,那麼排除列表將作爲不必要項目的過濾器來顯示,即牛,跳躍,結束,月亮 – syntaxcode

+1

是的,但這是一個代碼請求,而不是編程問題。你應該首先嚐試谷歌的一些東西,然後給我們你已經嘗試過的東西,以便我們看到問題所在,並改進現有的代碼,而不是爲你寫代碼:它會幫助你更好地記住它。 – AstroCB

回答

0

javascript array filter方法是你在找什麼。你可以做這樣的事情來達到你想要的。

var keywords = "Did the cow jump over the moon?"; 

// change lowercase then split the words into array 
var keywords_parsed = keywords.toLowerCase().split(" "); 

var exclusionlist = ["a","is","of","in","on","it","to","if","so","the","i","we","did"]; 

// now filter out the exclusionlist 
keywords_parsed.filter(function(x) { return exclusionlist.indexOf(x) < 0 }); 
+0

謝謝@Josnidhin - 它的工作。 – syntaxcode

0

這裏是一個oneliner,只是爲了好玩:

keywords.match(/\w+/g) 
     .map(function(i) {return i.toLowerCase();}) 
     .filter(function(i) { return exclusionlist.indexOf(i) == -1; }) 

的jsfiddle:http://jsfiddle.net/4KSKQ/

+0

這也適用於不同的方法,謝謝@zerkms。 – syntaxcode