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

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

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

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

Q&A

解決済

1回答

945閲覧

[Javascript] filter関数 オブジェクトデータから動的に特定の値のデータを抽出したい

DaisukeMori

総合スコア226

JavaScript

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

0グッド

0クリップ

投稿2021/12/27 05:03

要件定義

①オブジェクトデータの用意

js

1let objData = data['data']; 2console.log(objData);

console

10: {id: '1', title: 'タイトル' } 21: {id: '2', title: 'タイトル' } 32: {id: '3', title: 'タイトル' }

②ローカルストレージにあらかじめ入れておいたデータを呼び出す

js

1const favorites = localStorage.getItem("favorite_article"); 2const favObj = JSON.parse(favorites); 3const favObjDataId = favObj.map(value => { 4 return Number(value); 5}); 6console.log(favObjDataId);

console

1[2, 3]

※ここではid部分のみをローカルストレージに保存しています

③全体のオブジェクトデータから(①)、ローカルストレージに保存したIDのみのデータを抽出する

js

1const filterObjData = objData.filter(function(value) { 2 return value["id"] === "2" || value["id"] === "3"; 3});

※静的に埋め込めば特定のデータのみ抽出することは実現できています

今、静的に埋め込んであるところ(value["id"] === "2" || value["id"] === "3")を動的にするにはどういうロジックで実現できるかわかりません。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんなかんじとか。

js

1const filterKeys = [ "2", "3" ]; 2const filterObjData = objData.filter(function(value) { 3 return filterKeys.some( x => value["id"] === x ); 4});

【Array.prototype.some() - JavaScript | MDN】
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/some

投稿2021/12/27 05:13

kei344

総合スコア69458

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

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

DaisukeMori

2021/12/27 05:19

ありがとうございます。[ "2", "3" ]部分をfavObjDataId変数に置き換えて、 favObjDataId内、Numberにしていたものを取ったら無事、要件通りに動きました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問