javascript - javascript 嵌套过滤器函数

标签 javascript node.js vue.js ecmascript-6 vuejs2

我有一个名为restaurant_items的数组。它有对象,它们是餐厅的项目,每个对象都有一个名为in_menu数组,它也有对象 .

我想过滤属于特定menu_id的餐厅菜品。这意味着嵌套过滤函数。

我想传递 menu_id 3 并获取项目 Burger 和 Pizza 作为预期输出。

如何使用 Java 脚本过滤器实现此目的?

const restaurant_items = [
{
	name:"Burger",
	in_menu:[{
	id:1,menu_id:3
	},{
	id:2,menu_id:5
	}
]
},
{
	name:"Pizza",
	in_menu:[{
	id:1,menu_id:3
	},{
	id:3,menu_id:9
	}
]
},
{
	name:"Donuts",
	in_menu:[{
	id:8,menu_id:6
	},{
	id:4,menu_id:8
	}
]
}]

最佳答案

您可以使用Array.some()在过滤器内获取具有指定菜单 ID 的项目:

const restaurant_items = [{"name":"Burger","in_menu":[{"id":1,"menu_id":3},{"id":2,"menu_id":5}]},{"name":"Pizza","in_menu":[{"id":1,"menu_id":3},{"id":3,"menu_id":9}]},{"name":"Donuts","in_menu":[{"id":8,"menu_id":6},{"id":4,"menu_id":8}]}]

const filterByMenuId = (menuId) =>
  restaurant_items.filter(item => item.in_menu.some(o => o.menu_id === menuId))
  
const result = filterByMenuId(3)

console.log(result)

关于javascript - javascript 嵌套过滤器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53909427/

相关文章:

node.js - 在 Node 中以编程方式创建证书和证书 key

http - 通过 http 发送 jpg 的问题 - node.js

node.js - 如何阻止 pm2 杀死分离的子进程

vue.js - Nuxt/Vuex/Vue react 性问题增量

javascript - 避免直接改变 prop

javascript - 使用 AJAX 时如何避免嵌套函数?

javascript - react 不变违规=>不一致

javascript - 这个表达式有 eval() 替代方案吗?

Javascript 接口(interface)回调在 android webview API >= 21 和 GWT 2.7 javascript 中不起作用

javascript - Vue 3 <router-view> 在使用历史模式构建后得到评论