Использование вами функции $.map
не лучший подход для решения этой проблемы.Это связано с тем, что концепция карты состоит в том, чтобы сопоставлять старые элементы новым элементам методом 1: 1.Если ваш начальный массив состоит из 25 элементов, и вы отображаете его, вы получаете новый массив, который также содержит 25 элементов.
То, что вы хотите сделать, это ФИЛЬТР ваши данные!
В ванильном мире Javascript есть удобная функция .filter()
, которую вы можете вызывать в любом массиве.Но в jQuery land эта функция называется $.grep(array, function);
Первый аргумент - это исходный массив, который вы хотите отфильтровать.Второй аргумент - это функция, и это очень важно.
Функция, которую вы передаете при вызове $.grep
, является тестом и будет вызываться один раз для каждого элемента в исходном массиве.Если тест возвращает true, тестируемый элемент добавляется в новый массив.Если тест возвращает false, элемент не добавляется в новый массив.Результатом всей функции $.grep
является новый массив , содержащий только элементы, прошедшие тест.Фильтрованный массив !!!: D
Вы не указали достаточно кода для меня, чтобы создать идеальное решение для копирования и вставки, но вот очень маленькая и простая демонстрация.Внимательно изучите его и приложите все усилия, чтобы применить эти концепции в своем собственном коде.Удачи!!
JS Fiddle (с комментариями и журналами консоли)
JS Fiddle (без комментариев)
Читайте о $ .grep () на jQuery Docs