2017-11-05 9 views
0

キーワードを使用して文字列を検索したい。Node.js v8.0.0 - キーワードを使用して配列を検索

私は既にthisを何百回も読んでいますが、単語が正確に一致するかどうかを確認しています。私はそれをキーワード検索にしたいので、類似点を探して正確ではないでしょう。したがって、関数への入力が"foo"で、配列が["FoOfy", "Looky"]の場合、結果はFoOfyの位置になります。

これまで私がこれまで持っていたことは次のとおりです。

for (const x in server.queue) { 
    if(server.queue.includes(x.toLowerCase())) { 
     console.log(x.name); 
    } 
    } 

しかし、私が言及し続けると、それは正確なものだけをチェックします。私はすべてのスペースにパッチを当てることを考えていたが、うまくいくとは思わない。

キーワードを検索するにはどうすればよいですか?

編集: 私は十分に説明していないか、コードが意味をなさないと思われます。

少し明確にするには、私がしようとしていることを説明してください。

私はオブジェクトがいっぱいの配列を持っています。各オブジェクトにはtitleというプロパティがあります。私は、キーワードを使って一致する部分を探しているすべてのオブジェクトを検索したい。

配列は、この [{URLのようなものになります: 'https://www.youtube.com/watch?v=mX-SktWVHao'、タイトル: 'Elektronomia - 火災'、サムネイル: 'https://i.ytimg.com/vi/mX-SktWVHao/hqdefault.jpg'、所要時間:191、要求された: '< 236279900728721409 @>'、演奏:偽の}、{URL: 'https://www.youtube.com/watch?v=fzNMd3Tu1Zw'、タイトル: 'Elektronomia - エネルギー[NCSリリース]'、サムネイル: 'https://i.ytimg.com/vi/fzNMd3Tu1Zw/hqdefault.jpg'、所要時間:199は、要求された: '< 236279900728721409 @>'、演奏:偽}]

+2

あなたのコードはあまり意味がありません。あなたは 'server.queue'を繰り返していますが、' x'が 'server.queue'に含まれているかどうかを確認していますか? '' foo ''を保持する変数はどこにありますか? – 4castle

+0

私は何をしようとしていたか、そして私が望む結果を説明する編集をしました –

答えて

1

:あなたが提供する機能を使用して、各配列項目をテスト array .findIndex() method、試してみてください、あなたはあなたが好きなテストコードすることができます(私は string .includes() methodを使用しました)

const anArray = ['blah', 'foOfy', 'hello'] 
 
const keyword = 'foo' 
 
const position = anArray.findIndex(el => el.toLowerCase().includes(keyword)) 
 
console.log(position) // 1, the index of 'foOfy'

これは、最初に一致した要素のインデックスを返す、または-1は要素が一致しない場合。

(このループは私には意味をなさないので、質問に表示されたループに合わせようとはしていませんでした。つまり、反復処理している同じ配列で.includes()と呼んでいますか?)

関連する問題