如何获取JS中含箭头函数结构的Map内User对象属性?
解决方法
你的问题核心是混淆了Map实例和它内部存储的User对象——Map本身没有username属性,必须先从Map中取出对应的User对象,才能访问其属性。结合你的场景(Map中只有一个键值对,且键等于User的id),提供几种可行方案:
方案1:直接提取Map中的第一个值
利用values()方法获取Map的所有值(这里只有一个User对象),通过展开运算符转为数组后取第一个元素:
// 假设fetch返回的Map存储在thisVar变量中 const user = [...thisVar.values()][0]; const username = user.username; console.log(username); // 输出someUserName
方案2:通过键名获取User对象
如果已知User的id,可以直接用get()方法;如果不知道,先提取Map的第一个键:
// 方式A:已知具体id时 const user = thisVar.get('你的具体id字符串'); const username = user.username; // 方式B:未知id时,先取第一个键 const userId = [...thisVar.keys()][0]; const user = thisVar.get(userId); const username = user.username;
方案3:遍历Map获取User对象
通过forEach遍历Map(仅会执行一次,因为只有一个元素):
let username; thisVar.forEach(user => { username = user.username; }); console.log(username);
内容的提问来源于stack exchange,提问作者xFgn
相关产品推荐
相关产品推荐

