简体   繁体   English

在JavaScript中搜索嵌套对象数组

[英]searching nested object array in javascript

I have an object like one below and and I want to retrieve "SubscriptionId" for the "SubscriptionScheme='daily' if exists or return false. I am a bit struggling combining filter and find methods. Thanks in advance. 我下面有一个类似的对象,并且我想为“ SubscriptionScheme ='daily'(如果存在)或返回false来检索“ SubscriptionId”。我在过滤器和查找方法的组合上有点挣扎。

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

So expected result is "s2 " . 因此,预期结果是"s2 "

You could try something like the following: 您可以尝试以下操作:

 var arr = [ { "SubscriptionId": "s1 ", "SubscriptionType": "User", "SubscriptionFieldList": { "SubscriptionFieldInfo": [ { "SubscriptionMethod": "Direct", "SubscriptionScheme": "Monthly" } ] } }, { "SubscriptionId": "s2 ", "SubscriptionType": "User", "SubscriptionFieldList": { "SubscriptionFieldInfo": [ { ":SubscriptionMethod": "Direct", "SubscriptionFieldInfo": "daily" } ] } } ]; var obj = arr.filter(function(item){ return item.SubscriptionFieldList.SubscriptionFieldInfo.some(x=>x.SubscriptionFieldInfo === "daily"); }); if(obj !== undefined && obj.length == 1){ console.log(obj[0].SubscriptionId); } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM