在javascript中搜索嵌套对象数组

在javascript中搜索嵌套对象数组,javascript,object,Javascript,Object,我有一个像下面这样的对象,我想检索“SubscriptionScheme='daily'的“SubscriptionId”(如果存在),或者返回false。我在组合筛选器和查找方法方面有点困难。提前感谢 { [ { "SubscriptionId": "s1 ", "SubscriptionType": "User", "SubscriptionFieldList": {

我有一个像下面这样的对象,我想检索“SubscriptionScheme='daily'的“SubscriptionId”(如果存在),或者返回false。我在组合筛选器和查找方法方面有点困难。提前感谢

    {
      [ 
       {
        "SubscriptionId": "s1 ",
        "SubscriptionType": "User",
        "SubscriptionFieldList": 
           {
             "SubscriptionFieldInfo": [
               {
                 "SubscriptionMethod": "Direct",
                 "SubscriptionScheme": "Monthly"
               }
             ]
          }
       },
       {
       "SubscriptionId": "s2 ",
       "SubscriptionType": "User",
       "SubscriptionFieldList": {
       "SubscriptionFieldInfo": [
          {
            ":SubscriptionMethod": "Direct",
            "SubscriptionScheme": "daily"
          }
        ]
      }
     }
   ]
  }

因此,预期结果是
“s2”

您可以尝试以下方法:

var arr=[
{
“订阅ID”:“s1”,
“订阅类型”:“用户”,
“SubscriptionFieldList”:
{
“SubscriptionFieldInfo”:[
{
“订阅方法”:“直接”,
“订阅模式”:“每月”
}
]
}
},
{
“订阅ID”:“s2”,
“订阅类型”:“用户”,
“SubscriptionFieldList”:{
“SubscriptionFieldInfo”:[
{
“:SubscriptionMethod”:“Direct”,
“SubscriptionFieldInfo”:“每日”
}
]
}
}
];
var obj=阵列过滤器(功能(项目){
return item.SubscriptionFieldList.SubscriptionFieldInfo.some(x=>x.SubscriptionFieldInfo==“每日”);
});
如果(obj!==未定义&&obj.length==1){
console.log(obj[0].SubscriptionId);

}
我不明白你的目标。如果订阅计划是“每日”的,你想返回什么?你想要的最终结果是什么?为什么
subscriptionfeldinfo
是一个数组开始?非常感谢,我想添加一点。我想返回“SubscriptionId”作为“SubscriptionType”=“User”和“SubscriptionMethod”=“Direct”“。我是新手,你能帮我写一个函数来做这个吗?”?谢谢,不客气。您的意思是当
SubscriptionType
为“用户”时,您想返回
SubscriptionId
?我不能完全理解你。然而,如果是这样的话,你应该怎么做就很简单了。我建议你付出一些努力,如果你做不到,再问一次,说明问题是什么。这样你就能从中得到最大的收获。否则,您将有一个解决方案,这可能是您不理解的。例如,从上面的答案中,如果我是你,我会读到关于
过滤器
一些
,箭头函数,
x=>x…
。明白了这一点,我会从一开始就尝试:)