如何知道地图中的对象是否具有值

时间:2018-01-29 21:24:57

标签: javascript

我需要知道连接状态是否!== null:

this.filters = new Map([
            ['destinationGeoId', null],
            ['locationGeoId', null],
            ['nationalityId', null],
            ['travelType', null],
            ['connectionStatus', null]
          ])

如果我执行console.log过滤器,我会得到这个。

Map(5) {"destinationGeoId" => null, "locationGeoId" => null, "nationalityId" => null, "travelType" => null, "connectionStatus" => null}
size
:
(...)
__proto__
:
Map
[[Entries]]
:
Array(5)
0
:
{"destinationGeoId" => null}
1
:
{"locationGeoId" => null}
2
:
{"nationalityId" => null}
3
:
{"travelType" => null}
4
:
{"connectionStatus" => null}
length
:
5

我无法使用hasOwnProperty。我可以使用this.filters.values('connectionStatus'),但如果密钥存在,那只会给我真实,但我想要这个值。

2 个答案:

答案 0 :(得分:2)

好吧,创建一个函数来评估一个键是否有值。

这只是一个比较特定键值的函数。



var filters = new Map([
  ['destinationGeoId', null],
  ['locationGeoId', null],
  ['nationalityId', null],
  ['travelType', null],
  ['connectionStatus', null]
]);

var hasValue = function(key) {
  return filters.get(key) != null;
};

console.log(hasValue('connectionStatus'));




请参阅?评估返回false,因为connectionStatusnull

Sterling Archer所示,您可以使用Map.prototype.get()函数获取特定密钥的值。

答案 1 :(得分:0)

试试

this.filters.get('connectionStatus') !== null