首页 > 解决方案 > 检查对象是否有任何嵌套对象并获取其值

问题描述

我有一系列来自发布请求的 JSON 对象

{
  "labels": {
     "name": "Toma/Dyrskuvegen5/360.001/Avkasttemperatur"
  }
}

在某些序列中,标签是空的(在这种情况下应该返回 false),在某些情况下,它们不是。此外,在某些序列中

标签名称

将是其他一些随机键名,例如:

标签.room_number

我的任务是确定标签下是否有任何键并设置两个字符串,一个带有键名,另一个带有上面的键值示例:

n = "name"

v = "Toma/Dyrskuvegen5/360.001/Avkasttemperatur"

标签: javascriptnode-red

解决方案


您可以使用它Object.entries来执行此操作。它返回给定对象的 [key, value] 对的数组

let incoming = {"labels":
    {"name":
    "Toma/Dyrskuvegen5/360.001/Avkasttemperatur"}};
    let incoming2 = {"labels":
    {"age":
    "22"}};
     let incoming3 = {"labels":
    {}};
    
let getThis = (incoming) => {
  let entries = Object.entries(incoming.labels);
  if(entries.length > 0){
  [s,v] = Object.entries(incoming.labels)[0];
  console.log(s,v);
  }
  return false;
};
getThis(incoming3);
getThis(incoming);
getThis(incoming2);


推荐阅读