首页 > 解决方案 > JavaScript映射对象不保存对象键?

问题描述

所以我试图向地图对象添加一个条目,其中键是一个对象,但它似乎不起作用。

let myMap = new Map();
myMap.set({type : 'sum', val : 10},1);
console.log(myMap.get({type:'sum',val:10})); <---- this returns undefined

为什么它返回未定义而不是 1?

标签: javascripthashmapundefined

解决方案


当您设置和获取此结构时,javascriot 使用 SameValueZero 算法来存储键。SameValueZero 类似于严格相等 (===)。因为在 get 方法中,您正在创建新对象并将其作为键传递给此方法,所以此键并不严格等于您设置时使用的对象,因此您得到 null。


推荐阅读