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

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

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

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

420閲覧

jsの配列内ののオブジェクトをループさせる方法

ponpon00

総合スコア14

JSON

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/08/24 03:42

編集2020/08/24 03:43
const TARGET = [ {'AB12': [{name: "山田", id: "1234"}, {name: "田中", id: "5678"}]}, {'CD34': [{name: "佐藤", id: "98765"},{name: "鈴木", id: "8888888"}]} ] const data = TARGET.filter(el => el.hasOwnProperty(ID)); const dataForLoop = Object.values(data) for(let i = 0; i < dataForLoop.length; i++) { console.log(dataForLoop.name); console.log(dataForLoop.id); }

やりたいこととしてはconst data = TARGET.filter(el => el.hasOwnProperty(ID));で入れるIDによって表示を切り替えたいです
例 IDがAB12の場合
山田
1234
田中
5678

IDがCD34の場合
佐藤
98765
鈴木
8888888
のように表示させたいのですがどのようにすれば良いでしょうか?
教えてください

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

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

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

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

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

m.ts10806

2020/08/24 03:50 編集

現状のコードにおける問題点は何でしょうか。
guest

回答1

0

ベストアンサー

javascript

1var id="AB12"; 2TARGET.filter(x=>Object.keys(x).includes(id)).forEach(x=>{ 3 x[id].forEach(y=>{; 4 console.log(y.name); 5 console.log(y.id); 6 }); 7});

投稿2020/08/24 03:52

yambejp

総合スコア115010

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

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

ponpon00

2020/08/24 03:58

しっかり動きました 迅速で完璧な対応ありがとうございました
yambejp

2020/08/24 04:02

ちなみに、こんな感じで両方のIDを持つ可能性もあるので、それを考慮した書き方になっています const TARGET = [ {'AB12': [{name: "山田", id: "1234"}, {name: "田中", id: "5678"}]}, {'CD34': [{name: "佐藤", id: "98765"},{name: "鈴木", id: "8888888"}]}, {'AB12': [{name: "松原", id: "59"}, {name: "坂本", id: "6"}], 'CD34': [{name: "丸", id: "8"},{name: "岡本", id: "25"}]}, ];
ponpon00

2020/08/24 04:18

もう1つ質問させていただきたいのですが これをテンプレートリテラルとして使いたいのですが const content = TARGET.filter(x=>Object.keys(x).includes(hasSchoolId)).forEach(x=>{ x[hasSchoolId].forEach(y=>{ ` <li class="item"> <div class="movie-item-id">${y.id}</div> <div class="movie-item-name">${y.name}</div> </li> ` }); }); ......insertAdjacentHTML('afterbegin', content); みたいな使い方を想定していたのですがこれでは使うことはできませんか?
yambejp

2020/08/24 04:26

あらかじめ<ul id="hoge"></li>をつくっておいて var id="AB12"; var content=""; TARGET.filter(x=>Object.keys(x).includes(id)).forEach(x=>{ x[id].forEach(y=>{; content+= `<li class="item"> <div class="movie-item-id">${y.id}</div> <div class="movie-item-name">${y.name}</div> </li>`; }); }); document.querySelector('#hoge').insertAdjacentHTML('afterbegin',content); みたいな感じで
ponpon00

2020/08/24 05:53

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問