Javascript 获取键值,而不考虑对象数组中的深度

Javascript 获取键值,而不考虑对象数组中的深度,javascript,Javascript,我有一个对象数组,我想在其中获取一个键的值,例如“variable”。但钥匙的深度是不同的,可能如下所示- [{ "test": { "nameObj": { "name": "DateExpires", "title": "DateExpires", "variable": "DateTime" }, } }, { "test": { "nameOb

我有一个对象数组,我想在其中获取一个键的值,例如“variable”。但钥匙的深度是不同的,可能如下所示-

[{
    "test": {
        "nameObj": {
            "name": "DateExpires",
            "title": "DateExpires",
            "variable": "DateTime"
        },
    }
}, 
{
    "test": {
        "nameObjSomethingElse": {
            "name": "DateExpires",
            "title": "DateExpires",
            "variable": "DateTime"
        },
    }
}, 
{
    "test": {
        "nameObjSomethingElse": {
            "name": "DateExpires",
            "title": "DateExpires",
           "anotherLevel": {
            "variable": "DateTime"
           }
        }
    }
}]

在数组中的每个对象中,键“variable”处于不同的级别并处于不同的键下。如何获取“variable”的值

您可以使用
JSON.stringify
并使用其回调函数来标识特定键的每个值:

const obj=[{
“测试”:{
“nameObj”:{
“名称”:“日期到期”,
“标题”:“到期日”,
“变量”:“日期时间”
},
}
}, 
{
“测试”:{
“nameObjSomethingElse”:{
“名称”:“日期到期”,
“标题”:“到期日”,
“变量”:“日期时间”
},
}
}, 
{
“测试”:{
“nameObjSomethingElse”:{
“名称”:“日期到期”,
“标题”:“到期日”,
“其他级别”:{
“变量”:“日期时间”
}
}
}
}];
常量变量=[];
stringify(obj,(key,val)=>{
如果(键=='变量'){
变量push(val);
}
返回val;
});

console.log(变量)
正如我看到的,有多个名为
variable
的属性,在获取该属性时,是否要获取所有属性或第一次出现的属性?除非其中一个值是具有属性“variable”的函数,或JSON.stringify无法序列化的其他对象。;-)