打字稿:检查地图是否包含值

时间:2019-12-23 09:50:51

标签: typescript

我正在尝试检查Map是否包含值。 我在打字机游乐场测试了这段代码。

let userMap = new Map();

userMap.set("user1", 'displayName');
userMap.set("user2", 'displayName2');

        console.log(friendsMapNew.has("user2")); //true

但是当我在Google Cloud函数中使用此代码时,出现此错误:

error TypeError: userMap.has is not a function

这是我在云功能中使用的代码。

let userMap = new Map();
userMap = getUserDocument.data()['userMap']; //if i console.log this, it shows a map like this:
{ K79DFS: 'Bob' }
if (userMap.has("Bob") === true) {console.log("user exists")}

我在做什么错了?

谢谢!

1 个答案:

答案 0 :(得分:1)

getUserDocument.data()['userMap'];

此语句返回object而不是map

对象没有.has()函数。因此是错误。

如果对象中的“鲍勃是一个值”,则应该改用此

Object.values(userMap).includes("Bob") === true

要检查属性名称,可以使用:

Object.keys(userMap).includes("K79DFS") === true
相关问题