首页 > 解决方案 > 在 Javascript 映射中查找值

问题描述

如何在 Javascript 中找到特定值的第一次出现Map?例如:

const m = new Map();
m.set("a", "b");
m.set("c", "d");
m.set("e", "f");
m.set("g", "f");

// Then I want to do something like this:
m.find_value((v) => v === "f");

理想情况下,它将键和值作为元组(2 元素数组)返回,即["e", "f"].

显然,使用 for 循环手动编写代码是微不足道的,但是有没有更简洁的内置方式?

标签: javascript

解决方案


好像没有比自己写更好的办法了,像个平民一样。

function find_map_value<K, V>(m: Map<K, V>, predicate: (v: V) => boolean): [K, V] | undefined {
  for (const [k, v] of m.entries()) {
    if (predicate(v)) {
        return [k, v];
    }
  }
  return undefined;
}

推荐阅读