【发布时间】:2018-03-26 11:39:31
【问题描述】:
我的产品结构如下图:
product = {
"name":"MyXam",
"layers":[
{
"countries":[
{
"countryId":"1",
"countryName":"ABC"
},
{
"countryId":"2",
"countryName":"XYZ"
},
{
"countryId":"3",
"countryName":"PQR"
}
]
},
{
"countries":[
{
"countryId":"5",
"countryName":"LMN"
},
{
"countryId":"3",
"countryName":"PQR"
}
]
}
]
}
以及选定的国家/地区:
selCountries = [
{
"countryId":"1"
},
{
"countryId":"3"
}
]
现在我想过滤product,使其只包含countries 中的selCountries。
最终产品应该是:
{
"name":"MyXam",
"layers":[
{
"countries":[
{
"countryId":"1",
"countryName":"ABC"
},
{
"countryId":"3",
"countryName":"PQR"
}
]
},
{
"countries":[
{
"countryId":"3",
"countryName":"PQR"
}
]
}
]
}
我已尝试使用 lodash 进行以下操作,但无法正常工作:
_.filter(product.layers, _.flow(
_.property('countries'),
_.partialRight(_.some, selCountries)
));
product 在我的应用程序中动态出现。在某些情况下,某些layers 可能没有countries。所以解决方案也应该处理这种情况,并且不应该因未定义的错误而中断。
谁能帮帮我,我哪里出错了?
【问题讨论】:
标签: javascript underscore.js lodash