Javascript Object -Filter и получить желаемый контент

Допустим, у меня есть большой массив объектов, как на фотографии, и меня интересуют только объекты, содержащие идентификатор категории, равный определенному идентификатору (в этом случае переменная myId, я пробовал что-то вроде этого, но не могу получить желаемый результат.

$(".category").on("click", function(e) {
        e.preventDefault();
        const myId = $(this).attr('id');
        for(const v of app['List']) {

        const nn = Object.keys(v).map((key) => key === 'categories');
        console.info(nn,'nnnn')
    }

})

Javascript Object -Filter и получить желаемый контент

Мне нужно только содержимое объекта List, который имеет идентификатор категории, равный конкретному или предоставленному пользователем идентификатору

у массивов есть метод filter - на удивление, вы хотите фильтровать! Каковы шансы: p

Jaromanda X 05.06.2018 10:46

измените map () на filter (), map возвращает результат для каждого входного объекта - filter будет возвращать только те объекты, которые соответствуют вашему фильтру.

developer 05.06.2018 10:46
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… в следующий раз попробуйте поискать в Google "массив фильтров javascript";)
Dominic 05.06.2018 10:48
const result = app.List.filter(e => e.categories.includes(myId)); Вы используете filter, чтобы найти все записи в app.List, для которых обратный вызов возвращает истинное значение. Поскольку записи имеют массив категорий, вы используете includes(myId) (или indexOf(myId) != -1), чтобы вернуть флаг для этой записи.
T.J. Crowder 05.06.2018 10:49

@ T.J.Crowder Я пробовал ваше решение, но получил пустой результат. категории содержат 'id' и 'name'

user2338925 05.06.2018 11:10

Благодаря @ T.J.Crowder, наконец решено, const result = app.List.filter (e => e.categories.find (cat => cat.id === 3));

user2338925 05.06.2018 11:26

@rai - Извините, упустил, что categories был массивом объектов (это ясно показано выше). Просто к вашему сведению, а не find, используйте some (больше ничего менять не нужно). find будет работать, но some более подходит, когда вы используете только возвращаемое значение в качестве флага.

T.J. Crowder 05.06.2018 11:30
Поведение ключевого слова "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
7
41
0

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