前提・実現したいこと
記述量を減らすため、自作のJSONデータを元に「else if文」で条件分岐を行いたいです。
試行錯誤してコードを作成してみたのですが、正しく動作せず困っています、、
アドバイスいただけたら幸いです。よろしくお願いします。
発生している問題・エラーメッセージ
Uncaught ReferenceError: Cannot access 'result' before initialization
試したこと
エラーを調べた所、原因は「実行コードより後に定義した引数を使用した場合や、スコープの外から呼び出した時に表示されるエラー」であると分かったのですが、どの部分を指しているのかがよく分からず、解決できていない状態です。
条件分岐を使用せず、正常に動作しているコード
js
1 searchSpot() { 2 $.getJSON("json/item.json", (data) => { 3 4 const result = data.filter((v) => { 5 return v.season === this.searchParams.season; 6 }); 7 this.seasonDatas = result; 8 }); 9 10 $.getJSON("json/item.json", (data) => { 11 12 const result = data.filter((v) => { 13 return v.id === Number(this.searchParams.flowerId); 14 }); 15 this.itemDatas = result; 16 }); 17 18 $.getJSON("json/item.json", (data) => { 19 20 const result = data.filter((v) => { 21 return v.name.includes(this.searchParams.freeword); 22 }); 23 this.itemDatas = result; 24 }); 25 },
条件分岐を使用したが、エラーが出て正常に動作しないコード
js
1 searchSpot() { 2 $.getJSON("json/item.json", (data) => { 3 4 const result = data.filter((v) => { 5 if (v.season === this.searchParams.season) { 6 this.seasonDatas = result; 7 } else if (v.id === Number(this.searchParams.flowerId)) { 8 this.itemDatas = result; 9 } else if (v.name.includes(this.searchParams.freeword)) { 10 this.itemDatas = result; 11 } 12 }); 13 }); 14 };
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/20 12:16