使用_.其中array下划线.js
using _.where with array underscore.js
我是新来的下划线。我有两个对象TOWERS
和UNITS
var TOWERS = [
{
id: 1,
name: "A",
project: 1,
floors: 8
},
{
id: 2,
name: "B",
project: 1,
floors: 8
},
{
id: 3,
name: "C",
project: 1,
floors: 8
},
{
id: 4,
name: "D",
project: 1,
floors: 8
},
{
id: 5,
name: "E",
project: 1,
floors: 8
},
{
id: 6,
name: "F",
project: 2,
floors: 8
},
{
id: 7,
name: "G",
project: 2,
floors: 8
},
{
id: 8,
name: "H",
project: 2,
floors: 8
}
]
var UNITS = [
{
id: 1,
name: "101",
unittype: 1,
tower: 1,
floor: 1
},
{
id: 2,
name: "102",
unittype: 2,
tower: 1,
floor: 1
},
{
id: 3,
name: "101",
unittype: 1,
tower: 2,
floor: 1
},
{
id: 4,
name: "102",
unittype: 2,
tower: 2,
floor: 1
},
{
id: 5,
name: "101",
unittype: 3,
tower: 3,
floor: 1
},
{
id: 1,
name: "102",
unittype: 3,
tower: 8,
floor: 1
}
]
我选择TOWERS
id,其中project:1
使用:
var getTowers = _.where(TOWERS, {project:1});
var getUniqueTowers = _.chain(getTowers).pluck("id").unique().compact().value();
我得到了[1,2,3,4,5]
现在我要选择UNITS
,这个塔的值在[1,2,3,4,5]
有任何方法使用_.where
像下面吗?
_.where(UNITS, {tower:[1,2,3,4,5]}
您可以将.filter
与.indexOf
一起使用,就像这样
var units = _.chain(UNITS)
.filter(function (unit) {
return _.indexOf(getUniqueTowers, unit.tower) >= 0;
})
.value()
Example
不带下划线的版本
var units = UNITS.filter(function (unit) {
return getUniqueTowers.indexOf(unit.tower) >= 0;
})
相关文章:
- 如何使用下划线js转换这些数据
- 带嵌套json的下划线js查找
- 使用下划线.js筛选 JS 对象
- 是否可以使用下划线.js对此 JSON 数据进行分组
- 下划线.js,根据键值删除对象数组中的重复项
- 下划线.js .map 方法会中断 IE8
- _.数组中的每个查找值都返回 true 或 false.使用下划线 JS
- 为什么我的代码使用下划线.js但当我使用 Ramda.js 时却不行
- 下划线.js HTML 元素中的模板
- 在节点中使用下划线.js
- 做下划线.js函数,如_.findWhere(),同步返回结果
- 以下下划线.js代码如何工作
- 使用下划线 js map 函数时,Mongo 引用字段未实例化
- 是否有任何好的下划线.js替代方案来扩展核心 js 类
- 下划线.js - OO:在索引处获取项目?有没有更好的JS库来做到这一点
- 下划线.js不适用于 HTML 中的<和>
- 下划线.js - 带交集的折叠
- 下划线.js if 语句上的字符串连接
- 下划线.js,从一个对象中获取两个项目并添加到顶部
- 下划线.js根据值重新构造对象