javascript - Backbone/Underscore Filter 多维集合

标签 javascript backbone.js underscore.js

我目前正在开发 Backbone 应用程序,并使用backbone-forms 来生成应用程序中使用的一些表单。我有一个带有两个选择框的表单,可以通过我的 API 从集合中提取数据。

第二个选择框取决于第一个选择框的值(类别与产品关系)。然而,一个产品可以属于多个类别,因此下划线中的标准 _.where 不起作用。

这就是类别的 JSON 的大致样子:

{id: 1, name: "Category 1"}

这是产品的 JSON:

{id: 1, name: "Product 1", categories: [{cat_id: 1},{cat_id: 2}]}

当选择第一个选择值时,我需要某种方法来过滤 id。

最佳答案

var categoryId = 1; //your selected category id

var filteredProducts = _.filter(products, function (product) {
   return !!_.findWhere(product.categories, {id: categoryId });
});

最坏情况效率 - O(n^2)

fiddle

关于javascript - Backbone/Underscore Filter 多维集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17433640/

相关文章:

javascript - 使用 JavaScript localStorage 输入表单数据

backbone.js - 对使用 Backbone.js 和 Tastypie 从服务器预加载集合一无所知

ruby-on-rails - Backbone.js 的表单构建器插件?

node.js - _.template渲染结果是一个函数而不是node js中的字符串

javascript - 在 JS 模板中添加逻辑?好主意还是不好?

javascript - unserscore,使用 "{{","}}"作为插值符号,我遇到了异常

javascript - 通过ajax传递表格的一部分

javascript - 使用javascript设置CSS动画延迟

`onload` 事件的 JavaScript 对象/回调生命周期

javascript - 使用每个主干同步请求发送 token