无法从具有相同值的对象的Map中检索值

时间:2017-04-05 23:30:40

标签: dictionary ecmascript-6

我想构建一个以对象为键的查找表。但是我发现我无法构造具有相同值的键来检索表中的值。



const makeKey = (a, b) => (
  {a, 
   b,}
);

const lookup = new Map();

lookup.set(makeKey(1, 2), 'YES');
lookup.set(makeKey(3, 7), 'NO');
console.log(lookup.keys());

const k = makeKey(1, 2)

console.log(k);
console.log(lookup.get(k));  // want to get YES, get undefined instead




Map似乎使用对象标识来查找匹配。

如何将对象的值用作键?

1 个答案:

答案 0 :(得分:0)

我最终改变了密钥的生成方式:

const makeKey = (a, b) => {
  const k = {a, b};
  return `${Object.values(k)}`
};

键现在是一个字符串