Hola, estoy creando un filtro dinámico como este.
Filtro 1 --propiedad 1 --propiedad 2 --propiedad 3
Filtro 2 --propiedad 1 --propiedad 2 --propiedad 3
ese es el codigo
var js_filter = {}; var creators_cat = []; $('.filter-item input').on('change',function (e) { var filter_type = $(this).attr('name'); var filter_term = $(this).val(); creators_cat.push( filter_term ); js_filter["'"+filter_type+"'"] = creators_cat; console.log(js_filter); })y esa es una respuesta que recibo
{'filter-product_cat[]': Array(4), 'filter-brands': Array(4)} 'filter-brands': (4) ['32', '29', '23', '36'] 'filter-product_cat[]': (4) ['32', '29', '23', '36'] [[Prototype]]: Objectcomo puede ver, las claves de matriz se agregan dinámicamente, pero los valores son los mismos para ambas claves.
Y necesito agregarlos por separado. Estuve buscando una respuesta por un tiempo y no encontré algo similar.
Agradecería cualquier ayuda.
No debería estar presionando en una matriz global. Cada entrada de filtro debe tener su propia matriz de valores.
Compruebe si ya hay un elemento del objeto js_filter para el filter_type actual. Si no, créelo como una matriz vacía. Luego inserte el valor actual en la matriz.
$('.filter-item input').on('change', function(e) { var filter_type = $(this).attr('name'); var filter_term = $(this).val(); if (!js_filter[filter_type]) { js_filter[filter_type] = []; } js_filter[filter_type].push(filter_term); console.log(js_filter); })