我有一个CustomEvent
对象,我需要为其检索特定的属性。该对象不是普通对象,而是new CustomEvent();
的结果。在[Chrome]浏览器控制台中输出该对象时,会看到以下内容:
CustomEvent{
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: Window {...}
defaultPrevented: false
detail: {...}
eventPhase: 0
isTrusted: false
path: [Window]
returnValue: true
srcElement: Window {...}
target: Window {...}
timeStamp: 4979.4150000670925
type: "resize_element"
}
使用Object.keys(custom_event_obj)
时,我只会得到一个密钥,isTrusted
。这意味着isTrusted
是唯一可枚举的密钥。
我使用以下代码进行确认:
for(var key_str in custom_event_obj)
{
console.log(key_str, 'property is enumerable =', custom_event_obj.propertyIsEnumerable(key_str))
}
我得到以下结果:
isTrusted is enumerable = true
detail is enumerable = false
initCustomEvent is enumerable = false
NONE is enumerable = false
CAPTURING_PHASE is enumerable = false
AT_TARGET is enumerable = false
BUBBLING_PHASE is enumerable = false
type is enumerable = false
target is enumerable = false
currentTarget is enumerable = false
eventPhase is enumerable = false
bubbles is enumerable = false
cancelable is enumerable = false
defaultPrevented is enumerable = false
composed is enumerable = false
timeStamp is enumerable = false
srcElement is enumerable = false
returnValue is enumerable = false
cancelBubble is enumerable = false
path is enumerable = false
composedPath is enumerable = false
stopPropagation is enumerable = false
stopImmediatePropagation is enumerable = false
preventDefault is enumerable = false
initEvent is enumerable = false
Object.getOwnPropertyNames
也只给我一个键:isTrusted
。
此列表包含未出现在浏览器控制台结果中的键。
我只想获取出现在浏览器控制台中的键。如何从上面的完整列表中过滤掉这些键?
答案 0 :(得分:0)
Object.getOwnPropertyNames也只给我一个密钥:isTrusted。
不适合我
> head(counties)
date county state fips cases deaths dummy
1 2020-01-21 Snohomish 0 53061 1 0 0
2 2020-01-22 Snohomish 0 53061 1 0 0
3 2020-01-23 Snohomish 0 53061 1 0 0
4 2020-01-24 Cook 0 17031 1 0 0
5 2020-01-24 Snohomish 0 53061 1 0 0
6 2020-01-25 Orange 0 6059 1 0 0
> str(counties)
'data.frame': 218627 obs. of 7 variables:
$ date : Date, format: "2020-01-21" "2020-01-22" "2020-01-23" ...
$ county: Factor w/ 1774 levels "Abbeville","Acadia",..: 1468 1468 1468 379 1468 1178 379 1468 979 942 ...
$ state : num 0 0 0 0 0 0 0 0 0 0 ...
$ fips : int 53061 53061 53061 17031 53061 6059 17031 53061 4013 6037 ...
$ cases : int 1 1 1 1 1 1 1 1 1 1 ...
$ deaths: int 0 0 0 0 0 0 0 0 0 0 ...
$ dummy : int 0 0 0 0 0 0 0 0 0 0 ...
> print(a)
cases
96.10503
> print(b)
cases
NaN
> print(c)
cases
450.3478
> print(d)
cases
NaN
但是,尽管这确实为您提供了属性名称,但是您仍然必须遍历对象并获取属性的值。
您还可以使用.hasOwnProperty
来枚举未继承的属性。
let CustomEvent = {
bubbles: false,
cancelBubble: false,
cancelable: false,
composed: false,
currentTarget: null,
defaultPrevented: false,
detail: null,
eventPhase: 0,
isTrusted: false,
path: [],
returnValue: true,
srcElement: null,
target: null,
timeStamp: 4979.4150000670925,
type: "resize_element"
}
console.log(Object.getOwnPropertyNames(CustomEvent));