• ベストアンサー

Mapから特定のキーの情報を取得したい

MapからforEachを使用してkeyとvalueを取得する際、下記のように記述すると思います。この時、forEachを使用してtestMapからkeyArrayに一致するkeyの情報だけ取得することはできますでしょうか? keyArray: number[] = [1, 2, 3]; testMap.forEach((value, key) => { });

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ん? こういう事をしたいの? const testMap1 = new Map(Object.entries({1: "河北彩花", 2: "石川澪", 3: "長浜みつり", 4: "楪カレン", 5: "森沢かな(飯岡かなこ)", 6: "百田光希", 7: "矢埜愛茉", 8: "明里つむぎ", 9: "都月るいさ", 10: "神楽ももか", 11: "清原みゆう", 12: "橘メアリー", 13: "凪ひかる", 14: "小宵こなん", 15: "桜空もも", 16: "川越にこ", 17: "彩月七緒", 18: "逢沢みゆ", 19: "八木奈々", 20: "七沢みあ"})); let numbers = [1, 2, 3]; console.log(numbers.map((x) => testMap1.get(x.toString())));

関連するQ&A

  • MapからListへ

    どなたか教えてください。 Mapからあるvalueの値のkeyの値をListへ追加していきたいのですがどのようにしたらよいでしょうか? testmap.put(1,TEST1) testmap.put(2,TEST2) testmap.put(3,TEST1) ・ ・ ・ testmapのvalue値「TEST1」のkey1、3をListへ追加したいです。

    • ベストアンサー
    • Java
  • mapの値を全件取得

    いつも楽しく拝見させて頂いています。 mapオブジェクトをkeyの昇順でソートし、昇順でソートされた順にmapのvalueを取得したいって思ってます。 下記ソースで方針はあってますでしょうか? しかし下記ソースを実行すると※の行でClassCastExceptionが発生します。 String型にキャストしているつもりなのですが…なぜでしょうか? 初歩的な質問ですが宜しくお願いします。 ----------------------------------------以下ソース Map map = new TreeMap(); map.put(new Integer("12"), "000000000b"); map.put(new Integer("78"), "000000000a"); map.put(new Integer("39"), "000000000c"); map.put(new Integer("234"), "000000000g"); for(Iterator iterator = map.entrySet().iterator();iterator.hasNext();) {   Map.Entry entry = (Map.Entry)iterator.next(); ※ String key = (String)entry.getKey();   String value = (String)entry.getValue();   System.out.println(key + "=" + value);   } ・Jdk1.4.12 ・eclipse 3.0

    • ベストアンサー
    • Java
  • mapによるkeyとvalueのinsertに失敗しております。

    STLのmapコンテナにて、 valueを取得したり、 keyとvalueを登録するソースを書いていました。 get(key)にあたって、 valの取得に失敗した際には、 mapコンテナ上のkey-valueデータと 同期されているMySQLより、 データを取得してきます。 MySQLよりkeyに対応するvalの取得が 完了したら、 そのkeyとvalをmapコンテナに insertしたいと思っています。 つきまして、 insertを行おうと、 「_container.insert(std::make_pair(key, val));」の一文を ソースに挿入したところ、 「型が違う!」という内容(?)のエラー文で コンパイル時に怒られてしまいました。 ただ、「どの様に直してごらん!」と エラー文が言っているのか、 今いち、意味を理解できないでいます。 このエラー情報的には、 どんな風の型の改善を求められているのでしょうか? 教えていただけるとありがたいです。 もし可能でしたら、pointBの 「_container.insert(std::make_pair(key, val));」の部分で、 MySQLから取得済みkeyとvalを、 pointAのkeyとvalに代入する方法も 教えていただけるとありがたいです。 どちらかでも、 アドバイスをいただけますとありがたいです。 どうぞ宜しくお願い致します。 -------------------------------------------------- template<typename KEY, typename VALUE> class hoge : public service_object<ipl<KEY, VALUE>> { virtual void put(key_type key, value_type val) { _container.insert(std::make_pair(key, val)); // pointA } virtual cc::fu<value_type> get(key_type key) { typename container_type::iterator iterator = _container.find(key); if (iterator != _container.end()) { return cc::fu<value_type>((*iterator).second); }else { //getにした場合MySQLよりkeyとvalueを取得完了できるので取得した。 /* MySQLより取得したkeyとvalをpointAのようにmapコンテナにinsertしたい。*/ _container.insert(std::make_pair(key, val)); //pointB  } } }; -------------------------------------------------- ■エラー文 error: conversion from std::pair<std::_Rb_tree_iterator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::shared_ptr<csx::basic_message_cons<csx::basic_message<void, char> > > > >, bool>’ to non-scalar type ‘csrpc::future<boost::shared_ptr<csx::basic_message_cons<csx::basic_message<void, char> > > >’ requested

  • Mapの扱いについて

    いつもお世話になっております。 ただ今Java1.3にてMapを使用したプログラムを作成しております。 String[] hoge = {"0","0","0","0"}; String[] key = {"いいい","ううう","えええ"}; int[] point = {0,1,3}; String[] value = {"5","8","2"}; Map map = new HashMap(); map.put("あああ",hoge); map.put("いいい",hoge); map.put("ううう",hoge); map.put("えええ",hoge); map.put("おおお",hoge); for (int i=0; i < key.length; i++) { String[] wk_hoge = (String)map.get(key[i]); wk_hoge[point[i]] = value[i]; map.put(key[i],wk_hoge); } 上記のように記述し、結果としては あああ="0","0","0","0" いいい="5","0","0","0" ううう="0","8","0","0" えええ="0","0","0","2" おおお="0","0","0","0" としたいのですが、実際の結果が あああ="5","8","0","2" いいい="5","8","0","2" ううう="5","8","0","2" えええ="5","8","0","2" おおお="5","8","0","2" となってしまいます。 なぜそのようになってしまうのか原因がわかりません。 どなたかアドバイスをお願い致します。

    • ベストアンサー
    • Java
  • CシャープでのXML情報の取得

    最近プログラムを勉強し始め、 C#でGUIとCLIアプリを作成しています。 設定情報はapp.configに直接書かず、外部のxmlに分割しています。 外部xmlはユーザー自身が設定する事を想定しています。 その分割したxmlをLinq to XMLを使用して、 情報の取得・書き換え・保存・作成を行いたいと思っています。 <appSettings1>  <add key="国語" value="高崎 学"/>  <add key="英語" value="桜井 泉"/> </appSettings1> 上の様な複数の属性を含む構成は、 下記の様にすれば作成できると分かりました。 new XElement("appSettings1",  new XElement("add",   new XAttribute("key", "国語"),   new XAttribute("value", "高崎 学")  ) ) 分からないのがkeyの値からvalueの値を取得する方法です。 例えば「国語」を検索したら「高崎 学」を取得してほしいのです。 どうすれば良いのでしょうか?

  • グーグルマップが表示されません

    どなたか教えて下さい。 ウインドウズ10、クロームですがグーグルマップを使用したサイトを開きたいのですが一瞬はマップが表示されますが次のような表示がでてマップが見れません。 javascriptコンソールで技術情報をご確認下さい 何をすれば見れるようになるのでしょうか? APIキーは取得済みでスクリプトはすべて有効にしております

  • 配列のキーとvalueをテーブルに書き込めますか

    いつもお世話になっております。 下記方法で 配列のデータのみinsertすることができました。 foreach($b as $Key =>$Value){ $sql ="INSERT INTO temp_memo (stylecode) VALUES ('{$Value}')"; mysql_query($sql); } テーブルには key と stylecodeの二つのフィールドがあります。 上記の方法だと 下記 value のみのinsertです。 key stylecode 0   りんご 0   みかん 0   いちご key も同時に テーブルに書き込むことは 可能でしょうか。 いろいろ検索してみましたが 見つかりませんでした。 初心者です。 どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • グーグルマップAPI

    グーグルマップAPIはサイトを持たないと利用できないのですか? APIキーの取得はできますが、ドメインの登録ができません(分かりません。)。 そのせいかAPIキーを記載すると、未登録か無効などのコメントがでます。 サイトを持たずにグーグルマップAPIを使用する方法、手順などを教えて下さい。

  • バリュードメインで取得したドメインのWHOIS情報

    バリュードメインでドメインを取得したとき WHOIS情報に自分の情報を登録して申し込みましたが、WHOIS検索で自分の情報が出ないようにしたいと思います。 ムームードメインで取得したときは登録時に、「弊社の情報を公開する」という選択肢があったので簡単でした。 バリュードメインでは どのようにしたらよいのでしょうか? 今後登録したドメインを使って、サーバーを借りたり、どこかのショッピングカートを使えるようにしたいと思いますので、その際不都合の出ない方法を教えていただけますでしょうか。よろしくお願いいたします。

  • カラム情報(主キー、データ型、桁数等)を取得するには

    テーブルに格納されているカラム情報(カラム名、主キー、データ型、データの桁数)を取得したいと考えています。 主キー情報とそれに付随するカラム情報は現在下記のSQL文で取得しています。 SELECT C.TABLE_NAME , COL.COLUMN_NAME, C.CONSTRAINT_TYPE, COL2.DATA_TYPE, COL2.DATA_LENGTH FROM USER_CONSTRAINTS C, USER_CONS_COLUMNS COL, USER_TAB_COLUMNS COL2 WHERE C.TABLE_NAME = COL.TABLE_NAME AND C.CONSTRAINT_NAME = COL.CONSTRAINT_NAME AND C.TABLE_NAME = COL2.TABLE_NAME AND COL.COLUMN_NAME = COL2.COLUMN_NAME AND C.CONSTRAINT_TYPE = 'P' AND UPPER(C.TABLE_NAME) = UPPER('テーブル名') ORDER BY C.TABLE_NAME, COL.POSITION ここで、主キー以外のカラムに対しても同様にカラム情報を取得したいのですが、どのように取得すればよろしいでしょうか? ※カラム名、主キー有無、データ型、桁数 でカラム情報を取得できれば最も良いのですが、 主キー情報を除いた全体のカラム情報を取得する事ができれば、こちらの情報でも助かります 宜しくお願い致します。

専門家に質問してみよう