Ale*_*utz 16 javascript properties object identifier
可以说我有像这样的javascript对象:
addr:housenumber: "7"
addr:street: "Frauenplan"
owner: "Knaut, Kaufmann"
Run Code Online (Sandbox Code Playgroud)
如何检查对象是否具有以addr?开头的属性名称?我想象下面的内容应该是可行的:
if (e.data[addr*].length) {
Run Code Online (Sandbox Code Playgroud)
我试着RegExp和.match()无济于事.
Ami*_*oki 33
您可以使用Array.some返回a 的Object键检查它bool.
if(Object.keys(obj).some(function(k){ return ~k.indexOf("addr") })){
// it has addr property
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用Array.filter并检查它的长度.但Array.some在这里更贴切.
您可以使用该Object.keys函数获取一组键,然后使用该filter方法仅选择以键开头的键"addr".
var propertyNames = Object.keys({
"addr:housenumber": "7",
"addr:street": "Frauenplan",
"owner": "Knaut, Kaufmann"
}).filter(function (propertyName) {
return propertyName.indexOf("addr") === 0;
});
// ==> ["addr:housenumber", "addr:street"];
Run Code Online (Sandbox Code Playgroud)
这为您提供了exists(propertyNames.length > 0)和键的特定名称,但如果您只需要测试是否存在,则可以替换filter为some.
Obj = {address: 'ok', x:5}
Object.keys(obj).some(function(prop){
return ~prop.indexOf('add')
}) //true
Run Code Online (Sandbox Code Playgroud)