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



我正在尝试检查地图是否包含值。 我在打字稿操场上测试了这段代码。

let userMap = new Map();
userMap.set("user1", 'displayName');
userMap.set("user2", 'displayName2');
console.log(friendsMapNew.has("user2")); //true

但是当我在谷歌云函数中使用此代码时,我收到此错误:

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")}

我做错了什么?

谢谢!

getUserDocument.data()['userMap'];

此语句返回object而不是map

对象没有.has()功能。因此错误。

如果对象中的"Bob 是一个值",则应改用此选项

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

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

Object.keys(userMap).includes("K79DFS") === true

最新更新