javascript - 在 underscore.js _.where 中使用变量

标签 javascript jquery underscore.js

是否可以在 _.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/

相关文章:

javascript - 在页面加载时隐藏 tbody,永久显示 thead 组,使用 jQuery 在下拉选择中显示 tbody

javascript SWITCH语句不触发

javascript - 使用 jQuery 动态更改悬停时图像的大小会更改其周围环的位置

javascript - 如何将任何数组中的值分隔为多个数组

javascript - 我正在尝试运行我的 meteor 应用程序,但它给出了一堆错误

javascript - ERR_UNHANDLED_REJECTION 在 Promise 对象数组中等待时出现 UnhandledPromiseRejection

javascript - 如何将多列数据渲染到一列中?

javascript - 从另一个弹出窗口打开一个弹出窗口

underscore.js - 在链中使用 zip

Javascript 对象使用 lodash 或下划线进行转换