JavaScriptを/ノードにおける地図でいくつかのキーまで、すべての値を選択する方法はありますか?

QSmally:

私はこの地図は、いくつかのキーが渡されるまでは、地図の値を取得することができますどのように私が知りたいのですがどのようなキーと、などのIDのすべての種類であるだろう持っています。

あなたは、インスタンス「5」のキーを、持っていることを考えると、私はさらにそれよりも0-5と何を返すようにしたいと思います。それが可能である場合にも、キーは0〜無限大から注文されていない、私は、マップ内のキーのインデックスを意味します。

場合、私は知らないMap.entries()この問題のために良いの使用です。

私は配列として少し例をあげます:

[
  "n89w3rn98w3",
  "67q2g76gG67",
  "vna09wa9WHD",
  "g67a3889aIU",
  "ADW78aw3a8J",
  "89a7h3aIUJ4"
]

指定された配列の先頭がインデックス0であると、私は「g67a3889aIU」(配列の4番目の)キーを持っている場合は、最後の値がインデックス5であることを、私は返さ以下取得したいと思います:

[
  "n89w3rn98w3",
  "67q2g76gG67",
  "vna09wa9WHD",
  "g67a3889aIU"
]

それは私が入力されてきた第4回だから、最初の4です。

しかし、明確にするために、このマップではなく、配列でなければなりません。私はただの例を与えていました。

感謝

num8er:

することで、マニュアル

Mapオブジェクトは、キーと値のペアを保持し、キーの本来の挿入順序を記憶しています。

それは、我々はそれを繰り返すことによって、キーと値のペアを取得し、順序に基づいて別の地図を作成し直すことができることを意味します。

function takeEntriesFromMapUntilKey(mapObject, untilKey, inclusive = true) {
  const newMap = new Map();
  
  for (const [key, value] of mapObject) {
   if (key !== untilKey) {
     newMap.set(key, value);
     continue;
   }
   if (inclusive) {
     newMap.set(key, value);
   }
   break;
  }
  
  return newMap;
}

const map1 = new Map();
map1.set("n89w3rn98w3", 'data1');
map1.set("67q2g76gG67", 'data2');
map1.set("vna09wa9WHD", 'data3');
map1.set("g67a3889aIU", 'data4');
map1.set("ADW78aw3a8J", 'data5');
map1.set("89a7h3aIUJ4", 'data6');


const map2 = takeEntriesFromMapUntilKey(map1, 'g67a3889aIU');
console.log(Array.from(map2.entries()));

const map3 = takeEntriesFromMapUntilKey(map1, 'g67a3889aIU', false);
console.log(Array.from(map3.entries()));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=34144&siteId=1
おすすめ