簡體   English   中英

如何從地圖獲取對象鍵的值

[英]How to get value of an object key from a Map

如果我在地圖上添加這些值:

var m = new Map();
m.set(1, "black");
m.set(2, "red");
m.set("colors", 2);
m.set({x:1}, 3);

m.forEach(function (item, key, mapObj) {
    document.write(item.toString() + "<br />");
});

document.write("<br />");
document.write(m.get(2));
document.write("<br />");
document.write(m.get({x:1}));

打印:

black
red
2
3

red
undefined

為什么我在最后一行中undefined 有沒有辦法檢索存儲在Map中的對象鍵的值?

您可能需要引用該對象:

var m = new Map();
var o = {x:1};

m.set(o, 3);
m.get(o); //3

您需要對象引用來獲取對象。 任何新的文字都是新的對象,並且是不同的。

 var obj = { x: 1 }, m = new Map(); m.set(1, "black"); m.set(2, "red"); m.set("colors", 2); m.set(obj, 3); m.forEach(function (item, key, mapObj) { console.log(item.toString()); }); console.log(m.get(2)); console.log(m.get(obj)); console.log([...m]); 

您之所以未定義,僅僅是因為

document.write(m.get({x:1}));

您在這一行獲取的對象與此處的對象不同

m.set({x:1}, 3);

嘗試這個:

var m = new Map();
var obj = {x:1};
m.set(1, "black");
m.set(2, "red");
m.set("colors", 2);
m.set(obj, 3);

m.forEach(function (item, key, mapObj) {
    document.write(item.toString() + "<br />");
});

document.write("<br />");
document.write(m.get(2));
document.write("<br />");
document.write(m.get(obj));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM