从 Immutable.js Map 中根据值获取特定对象

Immutable.js 是一个优秀的 JavaScript 库,它提供了一些类似于原生 JavaScript 对象和数组的内存不可变数据结构。这些数据结构是持久化的,这意味着它们可以被安全地共享,而且在进行任何修改时都会返回新的数据结构。Immutable.js 的 Map 是其中之一,它类似于 JavaScript 对象,但是它的键和值都可以是任意类型。

在使用 Immutable.js Map 时,有时候我们需要根据值来获取一个特定的对象。虽然它很容易做到在 JavaScript 对象中,但是在 Immutable.js Map 中可能会有点棘手。在本文中,我将向您展示如何通过值从 Immutable.js Map 中获取特定对象。

使用 findKey 方法

Immutable.js 提供了一个 findKey 方法,它可以接受一个回调函数并返回第一个满足条件的键。我们可以使用这个方法来找到我们想要的对象所对应的键。一旦我们找到了这个键,我们就可以使用 get 方法来获取对应的值。

下面是一个例子:

------ - --- - ---- ------------

----- ------ - -----
  ----- - ----- ------- ---- -- --
  ----- - ----- ------- ---- -- --
  ------ - ----- -------- ---- -- -
---

----- --- - --------------------- -- ---------- --- ----
----- ---- - ----------------

------------------ -- - ----- ------- ---- -- -

在上面的代码中,我们首先创建了一个包含三个人的 Immutable.js Map。然后我们使用 findKey 方法找到了年龄为 23 的第一个人的键。最后,我们使用 get 方法获取对应的值,并将其存储在变量 jane 中。

使用 filter 方法

如果我们想要查找所有满足条件的对象,而不仅仅是第一个对象,那么可以使用 Immutable.js 提供的 filter 方法。

下面是一个例子:

------ - --- - ---- ------------

----- ------ - -----
  ----- - ----- ------- ---- -- --
  ----- - ----- ------- ---- -- --
  ------ - ----- -------- ---- -- -
---

----- -------------- - -------------------- -- ---------- --- ----

----------------------------------- -- - ----- - ----- ------- ---- -- - -

在上面的代码中,我们首先创建了一个包含三个人的 Immutable.js Map。然后我们使用 filter 方法找到所有年龄为 23 的人,并将它们存储在 filteredPeople 变量中。最后,我们使用 toJS 方法将结果转换回原始 JavaScript 对象,并将其打印到控制台。

总结

使用 Immutable.js Map 来查找特定对象可能有点棘手,但是通过使用 findKeyfilter 方法,我们可以轻松地解决这个问题。希望本文对您有所帮助!

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/29564