如何通过地图键获取对象的值?

时间:2019-01-09 08:32:13

标签: javascript ionic-framework javascript-objects

我有一个映射结构,其中键是数组,值是对象。

$(document.body).on('click', '.more_info' ,function(){
    var dealid = ($(this).attr('id')); 

    $("#info"+dealid).show(1000);  

  });

如何通过一键获取对象的值?

例如,如何通过键“ _1030003”获取“ floor”的值?

我的提供商store.ts:

myMap = new Map();
myMap.set(["_1030002", "_1030003"], { name: "Yayay", description: "aaa", floor: -3});

1 个答案:

答案 0 :(得分:2)

您可以使用keys()方法。 keys() 方法returns是一个新的 Iterator 对象,该对象按插入顺序包含Map对象中每个元素的键。 / p>

由于返回了Iterator对象,因此您需要使用Array.from方法。

我们需要使用includes方法来查找包含问题中的键map's的{​​{1}}键。

_1030003

您遇到的另一个问题是您没有正确处理异步请求。由于myMap = new Map(); myMap.set(["_1030002", "_1030003"], { name: "Yayay", description: "aaa", floor: -3}); let keys = Array.from(myMap.keys()); let key = keys.find(key => key.includes("_1030003")); console.log(myMap.get(key).floor);操作是异步执行的,因此get将在请求调用完成之前执行。

一种解决方案可能是使用回调函数。

console.log(this.JsonStoresData);