質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2057閲覧

JSONの値で条件分岐したい

退会済みユーザー

退会済みユーザー

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/10/20 12:09

前提・実現したいこと

記述量を減らすため、自作の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 };

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

どの部分を指しているのかがよく分からず、解決できていない状態です。

JavaScript

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:13

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/10/20 12:16

エラーメッセージを見れば「部分を指しているのかがよく分からず」って事はありえないと思うけども。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問