是否可以在 _.js 中使用带有 .where 的变量?
我正在制作一个过滤系统,它获取一组对象并在单击时过滤掉选定的对象。但是,要过滤的对象根据选择的元素而有所不同,所以我想使用 _.js 来过滤通过 _.where 传递给它的变量
硬编码值工作得很好,但是当用副本变量替换时,它会生成一个空白数组。
var user_filters = user_array;
var filtered_text;
$('.allFilters li').click(function () {
var $this = $(this);
var selected_filter = $this.siblings('a').text();
selected_filter = selected_filter.toLowerCase();
var filters = $this.attr('data-filter-value');
filters = '"'+filters+'"';
selected_filter = selected_filter;
console.log(selected_filter, filters);
user_filters = _.where(user_filters, {selected_filter: filters});
console.log (user_filters);
});
最佳答案
有一种方法可以在调用where时使用变量,即创建一个where期望的对象字面量。这可以使用下划线函数 _.object 来完成它可以采用键数组和值数组或键值对数组。
在您的示例中,您可以这样做:
user_filters = _.where(user_filters, _.object([[selectedFilter, filters]]));
关于javascript - 在 underscore.js _.where 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20966214/