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

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

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

Q&A

解決済

2回答

688閲覧

JSON形式のデータから特定の値を取り出したい

enemy

総合スコア1

JavaScript

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

0グッド

0クリップ

投稿2021/06/20 15:29

編集2021/06/20 15:37

前提・実現したいこと

JSON形式のデータから、JavaScriptで特定の値をもったデータを取り出したいのですが、その方法がわかりません。

該当データの形は下記のようになっており、
取り出したいものとしては、isJudgment : trueを持っているanswerTextの値になります。

javaScript

1const quizData = [ 2 { 3 qustionText : '質問1', 4 answerOptions : [ 5 { answerText : '答え1', isJudgment : false}, 6 { answerText : '答え2', isJudgment : true}, 7 { answerText : '答え3', isJudgment : false}, 8 { answerText : '答え4', isJudgment : false} 9 ] 10 }, 11 { 12 qustionText : '質問2', 13 answerOptions : [ 14 { answerText : '答え1', isJudgment : true}, 15 { answerText : '答え2', isJudgment : false}, 16 { answerText : '答え3', isJudgment : false}, 17 { answerText : '答え4', isJudgment : false} 18 ] 19 } 20]

ご教示のほどお願いいたします。

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

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

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

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

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

guest

回答2

0

そもそもこれはJSONデータじゃなくて単なる配列データなんですが、回答を書いておきますね

javascript

1quizData.filter(x => x.isJudement).map(x => x.answerText)

これがわからないようであればJavaScriptの基礎能力不足なのでちゃんとJavaScriptを勉強してください。

投稿2021/06/20 15:50

S.Percentage

総合スコア283

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

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

0

ベストアンサー

JavaScriptの配列操作を行った一例です。
例えば、MDNのドキュメントなどを参考に、「これを弄るとこうなる」というのを知っておくと良いでしょう。

※コメントは簡単な概要
※途中のコードを適切に消したりいじったりすると、別の形式になります

js

1const texts = quizData.map( 2 // 扱いたいのは回答の中身なので、answerOptionsの配列を作る 3 q => q.answerOptions 4 // isJudgment=true なものに限定した 5 .filter(a => a.isJudgment) 6 // 欲しいものであるanswerTextだけの配列を取り出す 7 .map(x => x.answerText) 8 // 配列の配列で使い勝手が悪いので1個だけ取り出す 9 // (ただしisJudgement=trueが1個であることが前提) 10 .shift() 11 ); 12console.log(texts); // [ '答え2', '答え1' ]

投稿2021/06/20 16:51

attakei

総合スコア2740

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

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

enemy

2021/06/21 04:49

attakei 様 ご丁寧に教えて頂きありがとうございます。 無事、実現出来ました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問