Js的动态对象与动态数组



嗨,我正在创建这样的动态过滤器

过滤器1——属性1——属性2——财产3

过滤器2——属性1——属性2——财产3

这就是代码

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);
})

这就是我得到的响应

{'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]]: Object

如你所见,数组键是动态添加的,但两个键的值是相同的。

我需要分别添加这些。我一直在寻找答案,但没有找到类似的答案。

感谢您的帮助。

不应该使用全局数组。每个过滤器输入都应该有自己的值数组。

检查当前filter_type是否已经存在js_filter对象的元素。如果不是,则将其创建为空数组。然后将当前值压入数组。

$('.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);
})

相关内容

  • 没有找到相关文章

最新更新