我正在尝试检查地图是否包含值。 我在打字稿操场上测试了这段代码。
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