Javascript 如果键是对象,如何从映射中的键获取值
如果我的键值是这样的对象,如何从贴图对象中获取键值Javascript 如果键是对象,如何从映射中的键获取值,javascript,class,Javascript,Class,如果我的键值是这样的对象,如何从贴图对象中获取键值 const map1 = new Map(); map1.set({x:0,y:0}, 'val'); console.log(map1.get({x:0,y:0})); //output: undefined 我正在创建一个键值的地图,键值是一个点,x点和y点的对象,val是一个生物,因此等于“测试”。我需要在代码中更改什么才能从这个键对象获得这个测试值 class Board { constructor() {
const map1 = new Map();
map1.set({x:0,y:0}, 'val');
console.log(map1.get({x:0,y:0}));
//output: undefined
我正在创建一个键值的地图,键值是一个点,x点和y点的对象,val是一个生物,因此等于“测试”。我需要在代码中更改什么才能从这个键对象获得这个测试值
class Board {
constructor() {
this.map = new Map();
}
add(point, creature) {
this.map.set(point, creature)
}
getVal(aX, aY) {
console.log(this.map) // Map { Point { x: 0, y: 0 } => Creature {} }
console.log(new Point(aX, aY)) //output: {x:0,y:0}
console.log(this.map.get(new Point(aX, aY))) //output: undefined
return this.map.get(new Point(aX, aY))
}
}
class Point {
constructor(aX, aY) {
this.x = aX;
this.y = aY;
}
}
function test() {
let board = new Board();
board.add(new Point(0, 0), 'test');
return cretureFromBoard = board.getVal(0, 0);
}
console.log('test()', test())
它需要是一个与键相等的对象,而不仅仅是任何碰巧具有相同结构和值的对象 例如:
a={x:0,y:0};
b={x:0,y:0};
console.log(a==b);//假的
因此,您需要将关键对象保留在某个位置,并使用该对象:
const map1=new Map();
var key={x:0,y:0};
map1.set(键“val”);
console.log(map1.get(key));//“瓦尔”
或者使用其他更方便的等式语义作为键