在javascript中搜索嵌套对象数组
我有一个像下面这样的对象,我想检索“SubscriptionScheme='daily'的“SubscriptionId”(如果存在),或者返回false。我在组合筛选器和查找方法方面有点困难。提前感谢在javascript中搜索嵌套对象数组,javascript,object,Javascript,Object,我有一个像下面这样的对象,我想检索“SubscriptionScheme='daily'的“SubscriptionId”(如果存在),或者返回false。我在组合筛选器和查找方法方面有点困难。提前感谢 { [ { "SubscriptionId": "s1 ", "SubscriptionType": "User", "SubscriptionFieldList": {
{
[
{
"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…
。明白了这一点,我会从一开始就尝试:)