0

我只是想检查一个 JSON 对象是否有一个特定的键。首先我将 JSON 文件解析为一个对象,但是当我尝试这个时:

  console.log("Inspect:" + util.inspect(oldConfig[websiteName][groupName]));
  console.log("Check Prop: " + oldConfig.hasOwnProperty([websiteName][groupName]));

我的控制台这样说:

Inspect:{ tmpTestTitle: { active: false, fileName: 'tmpFilename1' } }
Check Prop: false

我想知道为什么我可以通过使用util.inspect查看键和值,但是当我尝试使用hasOwnProperty -function 检查时却不能。

我还检查了 JSON 文件的正确格式,并尝试使用点符号 ( websiteName.groupName ) 来获取密钥。

作为补充,这是整个 json-object 在控制台中的样子:

{ tmpWebTitle: { tmpGroupname: { tmpTestTitle: [Object] } } }

谢谢你的帮助。

4

1 回答 1

0

Object.hasOwnProperty()将字符串作为参数并检查对象的键,而不是嵌套对象的键。

对于您的问题,您应该首先访问内部值并检查hasOwnProperty()

oldConfig[websiteName].hasOwnProperty(groupName));

let oldConfig={ 
              tmpWebTitle: { 
                             tmpGroupname: {
                              tmpTestTitle: [] 
                             } 
                           } 

               };

let websiteName ='tmpWebTitle';
let groupName ='tmpGroupname';
console.log("Check prop:", oldConfig[websiteName].hasOwnProperty(groupName));
.as-console-wrapper { max-height: 100% !important; top: 0; }

于 2020-04-09T15:46:50.847 回答