前提・実現したいこと
ここに質問の内容を詳しく書いてください。
<javascriptでコード書いて→alexaスキル開発>
csvファイルの文字列検索をした上で、その単語に対応したデータを別の列から取得して、2つの要素をもとに別の列のデータを回答として出したいです。
↓イメージ
列1 | 列2 | 列3 |
---|---|---|
子供向け | 服 | 1階 |
子供向け | おもちゃ | 2階 |
子供向け | 自転車 | 2階 |
大人向け | 服 | 3階 |
大人向け | カバン | 4階 |
実際はおもちゃが欲しくて2階に行きたくても、
indexOfで”子供向け”の質問をすると”服”のデータしか引っ張って来れない→1階という答えを返してしまう
理想的なのは
ユーザー)子供向けは何階?
alexa)服・おもちゃ・自転車のどれですか?
ユーザー)おもちゃ
alexa)2階です
といった感じです。
発生している問題・エラーメッセージ
indexOfだと最初に一致したデータしか引っ張ってこれません。
matchというのを見つけたのですが、このケースでも使えるのかどうかわかりません。
以下、indexOfを使って書いてみたコードです。
最後のif文の途中で問題に気づいて書きかけになっています。
該当のソースコード
JavaScript
1if (!dep_data) { 2 message = '発音が聞き取れませんでした。もう一度お願いします。'; 3 console.log("発話ミス"); 4 this.emit(':ask', message); 5 } else { 6 for (var r = 2; r < res.length; r++) { 7 if (res[r][1].indexOf(dep_data) > -1 || res[r][3].indexOf(dep_data) >-1 || res[r][8].indexOf(dep_data) >-1) { 8 console.log(dep_data + "あった") 9 if (res[r][1].indexOf(dep_data) > -1) { 10 message = res[r][1] + "は" + res[r][5] + "にあります"; 11 dep = res[r][9]; 12 text = res[r][7] + ", " + res[r][5] + ", " + res[r][1] + ", " + res[r][3]; 13 } 14 15 }
試したこと
条件分岐の列をcsvに作ってみようとして、訳が分からなくなりました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/13 04:05