Javascript 获取键值,而不考虑对象数组中的深度
我有一个对象数组,我想在其中获取一个键的值,例如“variable”。但钥匙的深度是不同的,可能如下所示-Javascript 获取键值,而不考虑对象数组中的深度,javascript,Javascript,我有一个对象数组,我想在其中获取一个键的值,例如“variable”。但钥匙的深度是不同的,可能如下所示- [{ "test": { "nameObj": { "name": "DateExpires", "title": "DateExpires", "variable": "DateTime" }, } }, { "test": { "nameOb
[{
"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无法序列化的其他对象。;-)