Java скрипт вложенные функции фильтра

У меня есть массив под названием restaurant_items. У него есть objects, которые являются предметами ресторана, и каждый объект имеет array с именем in_menu, он также имеет objects.

Я хочу фильтр ресторанных блюд, принадлежащих определенному 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
	}
]
}]
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
76
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вы можете использовать Array.some() внутри фильтра, чтобы получить элементы с указанным идентификатором меню:

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.info(result)

Большое спасибо. Даже я никогда раньше не слышал этого "чего-то". знак равно

Pathum Kalhan 24.12.2018 06:47
function filter(restaurant_items, menu_id) {
    return restaurant_items.filter(function(item) {
        var index =  item.in_menu.findIndex(function(item2) {
            return item2.menu_id === menu_id;
        });
        return index !== -1;
    });
}

Использование:

var filtered_items = filter(restaurant_items, 3);

@Ori предоставил хорошее решение. Добавляем последнюю карту в конце, чтобы просто дать вам то, что вам нужно.

const getItem = (restaurant_items, inputId) => restaurant_items
    .filter(item => item.in_menu.some(menu_item => menu_item.id === inputId))
    .map(item => item.name);

Другие вопросы по теме