javascript - 如何根据另一个值在嵌套数组中查找一个值?
问题描述
我正在处理嵌套数组并尝试根据另一个值在嵌套数组中找到一个值。我想找到OptionCode
当前活动的过滤器。
filters = [
{
FilterCode: "TourPrice",
FilterName: "Tour Price",
Options: [
{ Name: "Free", OptionCode: "Free", active: false, blocked: false },
{ Name: "Paid", OptionCode: "Paid", active: false, blocked: false },
{
Name: "Free and Paid",
OptionCode: "FreeAndPaid",
active: true, //Find OptionCode Here
blocked: false,
},
],
},
{
FilterCode: "SortedBy",
FilterName: "Sorted By",
Options: [
{
Name: "Most Relevant",
OptionCode: "MostRelevant",
active: true, // Find OptionCode Here
blocked: false,
},
{
Name: "Latest Tour",
OptionCode: "LatestTour",
active: false,
blocked: false,
},
{
Name: "Oldest Tour",
OptionCode: "OldestTour",
active: false,
blocked: false,
},
{
Name: "Lowest Price",
OptionCode: "LowestPrice",
active: false,
blocked: false,
},
],
},
],
对于上述数组,预期结果应该类似于["FreeAndPaid","MostRelevant"]
解决方案
如果每个过滤器都有一个活动选项,您可以使用
console.log(filters.map(filter => filter.Options.find(option => option.active).OptionCode))
filters = [
{
FilterCode: "TourPrice",
FilterName: "Tour Price",
Options: [
{ Name: "Free", OptionCode: "Free", active: false, blocked: false },
{ Name: "Paid", OptionCode: "Paid", active: false, blocked: false },
{
Name: "Free and Paid",
OptionCode: "FreeAndPaid",
active: true, //Find OptionCode Here
blocked: false,
},
],
},
{
FilterCode: "SortedBy",
FilterName: "Sorted By",
Options: [
{
Name: "Most Relevant",
OptionCode: "MostRelevant",
active: true, // Find OptionCode Here
blocked: false,
},
{
Name: "Latest Tour",
OptionCode: "LatestTour",
active: false,
blocked: false,
},
{
Name: "Oldest Tour",
OptionCode: "OldestTour",
active: false,
blocked: false,
},
{
Name: "Lowest Price",
OptionCode: "LowestPrice",
active: false,
blocked: false,
},
],
},
]
console.log(filters.map(filter => filter.Options.find(option => option.active).OptionCode))
推荐阅读
- arrays - 矩阵相乘时的 Array{Float64,2} 问题 Julia
- php - 根据用户角色/功能 Wordpress 从菜单中隐藏 DIV
- python - 通过api创建用户keycloak并分配client-role realm-managment
- ruby-on-rails - SSL 证书请求失败。无法导出 CNAME 记录
- here-api - 在 Here Map 的中心叠加图像(如警告图像)?
- google-apps-script - 无法保存文档 - 文档太大。但它不是
- c++ - 通过模板和 SFINAE 支持多个类接口
- string - golang 将 os.ModePerm 转换为字符串
- scala - 有没有更惯用的方法来简化 leftJoin 的结果?
- sql - 这个postgres分页sql的性能可以提高吗?