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

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

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

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

Q&A

解決済

1回答

3102閲覧

オブジェクトで配列と一致するキーの値を取得するにはどうすればよいでしょうか

banbbanb0814

総合スコア11

JavaScript

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

0グッド

1クリップ

投稿2018/10/11 07:48

編集2018/10/11 07:49

下記のようなオブジェクトと

var list = { 'AAA': 500, 'BBB': 100, 'CCC': 200, 'DDD': 500, 'EEE': 300, 'FFF': 400 };

下記のような配列があったとして

var item = ['AAA', 'BBB', 'EEE'];

配列の値とオブジェクトのキーが一致している場合、その値を取得したいです
→取り出したい結果 [500, 100, 300]
(AAA⇒500,BBB⇒100,EEE⇒300)

どなたかご教示のほど、よろしくお願いいたします。

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

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

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

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

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

jun68ykt

2018/10/11 08:23

こんにちは。最終的に得たいものは、 [500, 100, 300] という配列でしょうか? それとも list から item にあるプロパティだけを取り出した { AAA: 500, BBB: 100, EEE: 300 }  というオブジェクトを得たいのでしょうか?
banbbanb0814

2018/10/11 08:47

[500, 100, 300] という配列となります!
jun68ykt

2018/10/11 08:50

なるほどです。でしたら、 x_x さんの回答にある、map を使うコードがシンプルでよいと思います。
banbbanb0814

2018/10/11 09:18

なるほどですね!ありがとうございます!
guest

回答1

0

ベストアンサー

そのまま取ればいいのでは?

JavaScript

1const result = item.map(v => list[v]); 2console.log(result); // [500, 100, 300]

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/map

投稿2018/10/11 07:54

x_x

総合スコア13749

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

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

banbbanb0814

2018/10/11 08:46

mapを使えば良いのですね!ありがとうございます! ただ、そのまま使おうとすると構文エラーになってしまい、下記のように記述したら無事取得できたのですが、何が問題だったかよく分からず、また下記の記述で問題ないのか自信がない状態です。 ``` var result = item.map(function (value, index) { for (var v in this) { if (v === value) return list[v]; } }, list); ``` ※ちなみにGASに記述しており、GASで構文エラーとなりました。※
x_x

2018/10/11 09:00

IEですかね? IEでもmap()自体はあるので、アロー関数だけ外して item.map(function(value, index) { return list[value]; }); でいいと思います。
kei344

2018/10/11 09:12

To: x_xさん Google Apps Script ではアロー関数が使えないのが問題だったのでは。
banbbanb0814

2018/10/11 09:30

なるほどですね!ありがとうございます! 無事、下記で設定出来ました! item.map(function(value, index) { return list[value]; });
x_x

2018/10/11 09:30

ありがとうございます。確認しました。
x_x

2018/10/11 09:31

あーコメントがかぶってしまいました。 とにかく解決できそうでよかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問