使用Map()对象显示对象的键

时间:2018-08-31 18:03:27

标签: javascript dictionary javascript-objects

我在这里获取地图对象的键

let woodNunChaku = {
  dimensions:"23cm",
};

let foamNunChaku = {
  dimensions:"21cm",
};

let m = new Map();

m.set("wood",woodNunChaku);
m.set("foam",foamNunChaku);

for (let [key,value] of m){
  console.log(key);
}

输出:

wood
foam

如果我使用下面的代码,我将得到整个对象

for (let [key,value] of m){
  console.log(value);
}

输出:

{dimensions: "23cm"}
{dimensions: "21cm"}

如果我使用此代码:

for (let [key,value] of m){
  console.log(value['dimensions']);
}

它会输出尺寸键

"23cm"
"21cm"

但是,如果我想使用woodNunChaku对象来获取Map()对象的密钥,该怎么办?

例如:我想使用Map()对象显示两个对象的“尺寸”。

1 个答案:

答案 0 :(得分:1)

好像您正在使用对象作为每个键的值来创建js映射。因此,您在代码中创建的地图看起来像[["wood", {dimensions: "23cm"}], ["foam", {dimensions: "21cm"}]],并且每个对象都存储为地图元素的值。为了获取每个对象的键,您需要遍历映射值并获取每个对象的键。例如:

for (let value of m.values()){
  let keys = Object.keys(value);
  console.log(keys);
}

// OUTPUT
// ["dimensions"]
// ["dimensions"]