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

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

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

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

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

673閲覧

Javascript: jsonのデータを配列と比較して該当するデータのみを抽出して結果を返したい

nanase21

総合スコア144

JSON

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

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/07/07 01:13

編集2020/07/07 01:29

実現したいこと

jsonのデータをフィルターしarrにある、数字に該当するidのデータだけ返す方法をしりたい。
filterでやろうとしたのですが、意図した処理に出来ずに困っています。

js

1const arr = [1,3]; 2const obj = [ 3 {id: 1, quantity: 1, name: 'product1'}, 4 {id: 2, quantity: 3, name: 'product2'}, 5 {id: 3, quantity: 2, name: 'product3'}, 6 {id: 4, quantity: 4, name: 'product4'}, 7 ] 8// => [{id: 1, quantity: 1, name: 'product1'}, {id: 3, quantity: 2, name: 'product3'}]

指摘について
試したことを記載し忘れてました。
すいませんでした。

試したこと

js

1const res_arr = obj.filter(item => item.id == arr) 2// うまく動かない...

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

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

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

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

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

kei344

2020/07/07 01:24

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
akbr

2020/07/07 01:31

多分filterでやろうとしたっていう時のコードを質問文に追記した方がいいかもです!
guest

回答3

0

ベストアンサー

javascript

1const result=obj.filter(x=>arr.includes(x.id)); 2console.log(result);

投稿2020/07/07 01:24

yambejp

総合スコア116724

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

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

nanase21

2020/07/07 01:30

ご教示いただきありがとうございました。 includesメソッドがありましたか。 勉強になりました。
guest

0

obj.filter(function(v) { return arr.indexOf(v.id) !== -1 });

こんなかんじでしょうか?

できれば

意図した処理に出来ずに困っています

の途中経過があると良かったと思います。

投稿2020/07/07 01:23

tetsunosuke

総合スコア1295

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

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

nanase21

2020/07/07 01:30

ご教示いただきありがとうございました。 ご指摘を受けて試したコードを追記しました。
guest

0

filterでやろうとしたのですが、意図した処理に出来ずに困っています。

過去のご質問と同様の処理で片付きます。

以前の回答でも利用されていたメソッド:

  1. MDN:Array#filter
  2. MDN:Array#includes

(それぞれ、「MDN filter」、「MDN includes」で検索)

console.log() を活用して、用法を確認することが大事になります。
「MDN console」で検索:MDN:console

const arr = [1, 3]; console.log( arr.includes(1) ); // 2. の動作確認 true console.log( arr.includes(2) ); // 2. の動作確認 false const rslt = obj.filter( item => { console.log( item, item.id ); // 1. の動作確認 // => { id: , quantity: , name: }, id値 return arr.includes( item.id ); }); // 最適化するなら // obj.filter( item => arr.includes( item.id ) ); console.log( rslt );

この回答では、「MDNから説明ページの探し方」のコツを掴んでください。

投稿2020/07/07 01:31

AkitoshiManabe

総合スコア5434

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問