如何基于食材分类属性正确判断餐品是否为素食?
问题修复:素食菜品判断逻辑错误
问题根源
当前代码存在核心逻辑错误:
ingredients是食材数组,而非单个食材对象,直接访问ingredients.category会得到undefined,导致所有判断完全失效isVegetarian的逻辑应该是:只要食材中存在任何一个meat分类的食材,就返回false(非素食),否则返回trueisDelicious的逻辑同理:只要食材中存在cheese分类的食材,就返回true
修复后的代码
const createNewMeal = (name, ingredients) => { return { name, ingredients, isVegetarian() { // 检查数组中是否有任何食材的category是meat,有则返回false return !ingredients.some(ingredient => ingredient.category === "meat") }, isDelicious() { // 检查数组中是否有任何食材的category是cheese,有则返回true return ingredients.some(ingredient => ingredient.category === "cheese") }, } } export default createNewMeal
代码说明
- 使用数组的
some()方法遍历食材:该方法会检查数组中是否存在至少一个符合条件的元素,返回布尔值 isVegetarian中用!取反:如果存在meat食材,some()返回true,取反后得到false(非素食);反之返回true(素食)isDelicious直接返回some()的结果:存在cheese食材则返回true,否则false
内容的提问来源于stack exchange,提问作者user19444313
相关产品推荐
相关产品推荐

