javascript - JavaScript映射对象不保存对象键?
问题描述
所以我试图向地图对象添加一个条目,其中键是一个对象,但它似乎不起作用。
let myMap = new Map();
myMap.set({type : 'sum', val : 10},1);
console.log(myMap.get({type:'sum',val:10})); <---- this returns undefined
为什么它返回未定义而不是 1?
解决方案
当您设置和获取此结构时,javascriot 使用 SameValueZero 算法来存储键。SameValueZero 类似于严格相等 (===)。因为在 get 方法中,您正在创建新对象并将其作为键传递给此方法,所以此键并不严格等于您设置时使用的对象,因此您得到 null。
推荐阅读
- angular - 如何在没有 shell UI 的情况下独立执行 Angular 库
- listview - Xamarin ListView 添加/删除项目太慢
- reactjs - 做出反应。如何访问已创建的组件对象的状态或道具?
- mysql - 如何从 mysql 中的特定检查点恢复数据库?
- python - wget如何使用通配符下载更改文件夹下的更改文件
- solace - 安慰主题端点保证交付
- node.js - 在 MongoDb ( Node.js ) 中返回插入的文档
- c# - 如何在asp.net的新闻中获取类别计数使用
- scala - 当我在泛型函数中转换数据类型时无效。toint 被调用,但 v 的类型仍然是 double
- node.js - How to fetch data from nested json in mongodb when key is not known(variable)