私は次のように書いています:
var pages=["[www.google.co.uk] This is the WWW. ","[www.yahoo.co.uk] This is also the WWW. "];
function findScoresC(s){
var scores=[];
var words=[];
var wordScore;
var indexScore=[];
s=s.toLowerCase();
for(i=0;i<pages.length; i++){
var lowerCaseContents=(pages[i].substring(pages[i].indexOf("]")+1,pages[i].lastIndexOf(" "))).toLowerCase();
words=lowerCaseContents.split(" ");
for(i=0;i<words.length;i++){
if(words[i].match(s)){
wordScore=1;
indexScore[i]=indexScore[i]+1};
scores[i] =indexScore[i]}};
return scores;
}
alert(findScoresC("w"));
この関数は、配列( "scores")を返すことを目的としています。ここで、配列の各インデックスは、角括弧内にあるものを除いて、 "pages"配列の各インデックスで文字列sが見つかった回数です。ただし、文字列は各単語内で1回です。したがって、理想的には、スコアの最初のインデックスは1になります。これは、文字wを使用して関数を呼び出したためです。これが理にかなっている場合は、ページの最初のインデックスで「WWW」の最初のwを検索するだけです。
私はここまで到達するのにかなり叙事詩的に混乱しているので、関数がスコアの各インデックスの数値ではなく「、、、、」を返す理由がわかりません-何かアイデアはありますか?
ありがとう