[英]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.