如何在 JavaScript 中过滤地图

在 JavaScript 中过滤地图

How to Filter a Map in JavaScript

在 JavaScript 中使用forEach()方法过滤 a 。Map使用 中的每个键值对调用该方法Map,我们可以在其中检查条件并使用该delete()方法删除Map我们想要过滤掉的任何元素。

索引.js
const map1 = new Map([ ['num1', 1], ['num2', 2], ['num3', 3], ]); map1.forEach((value, key) => { if (value > 1) { map1.delete(key); } }); // 👇️ {'num1' => 1} console.log(map1);

我们使用
Map.forEach
方法迭代
Map
对象。

我们传递给该forEach()方法的函数会针对 的每个键值对调用,Map并传递以下参数:

  1. value– 迭代的价值
  2. key– 迭代的关键
  3. mapMap对象

我们使用value来检查条件并使用key
删除
我们不需要的任何元素
Map

另一种方法是将Map方法转换为数组并使用该
filter方法。

Map在 JavaScript 中过滤 a :

  1. 将 转换Map为数组。
  2. 使用该filter()方法遍历数组。
  3. 排除不符合条件的元素。
  4. 将数组转换回 a Map
索引.js
const map1 = new Map([ ['num1', 1], ['num2', 2], ['num3', 3], ]); const filtered = new Map( Array.from(map1).filter(([key, value]) => { if (value > 1) { return true; } return false; }), ); // 👇️ {'num2' => 2, 'num3' => 3} console.log(filtered);

我们使用该Array.from方法将 转换Map为键值对数组。

索引.js
const map1 = new Map([ ['num1', 1], ['num2', 2], ['num3', 3], ]); // 👇️ [['num1', 1], ['num2', 2], ['num3', 3]] console.log(Array.from(map1));

当我们将 转换Map为数组时,我们得到一个二维数组,我们可以在其上调用该filter方法。

每个子数组中的第一个元素是键,第二个元素是相应的值。

我们使用
解构赋值
来解构传递给
filter方法的回调函数中的键和值。

索引.js
const [key, value] = ['num1', 1]; console.log(key); // 👉️ num1 console.log(value); // 👉️ 1

在回调函数中,我们检查条件并返回true是否满足条件,false否则返回。

filter方法返回一个仅包含元素的新数组,回调函数为其返回真值。

Map最后一步是使用
Map()
构造函数
将数组转换回 a 。

进一步阅读

发表评论