У меня есть несколько флажков, которые фильтруют продукты в зависимости от того, какие флажки были выбраны. Фильтр работает при нажатии флажков, а идентификаторы продуктов добавляются в массив. Как вы можете видеть, у обоих фильтров есть одни и те же идентификаторы, поэтому, если они нажимают более одного окна ввода, я хочу убедиться, что идентификаторы только вставляются в массив один раз. Например. если у них есть input.white выбрано и input.greymelange выбрано, тогда они нажали на filter-btn. Я хочу, чтобы повторные идентификаторы повторялись один раз. Есть ли способ, которым я могу это сделать?Нажмите на массив, только если его нет
Jquery
var productIds = [""];
$(document).on('click', 'a.filter-btn', function(e){
$(".listingTemplate").html("");
if ($('input.white').is(':checked')) {
productIds.push("4021401143741", "4021402266227");
}
if ($('input.greymelange').is(':checked')) {
productIds.push("4021401143741", "4021402266227","4021402266418", "4021401143796");
}
});
HTML
<input type="checkbox" id="white" class="white" value="white" />
<input type="checkbox" id="greymelange" class="greymelange" value="greymelange" />
<a href="#" class="filter-btn">filter</a>
... Что именно вы пытаетесь сделать с этим кодом? Я думаю, что перепроектирование кода для обработки продуктов, а не фильтров упростит ваш код, а также будет более дружественным к базе данных. – user1618143