当我有一个对象流时,例如
values = Bacon.fromArray([ {'status':"active"}, {'status':"inactive"} ]);
我可以应用短格式过滤器,如下所示:
activeStates = values.filter( ".status", "active" );
但是当原始流只包含基元时:
states = Bacon.fromArray( ["active", "inactive" ] );
然后我不能再使用那个表单了,我必须写一个函数文字。我尝试使用"."
,""
,null
作为属性名称参数,但这不起作用。
我可以定义一个这样的函数:
function equals( val ){
return function( obj ){
return obj === val;
}
}
然后写:
activeStates = values.filter( equals( "active" ) );
这是我能做的最好的吗?或者是否存在我缺少的培根功能,还是常见的lodash功能,使我无法编写自己的equals
功能?
答案 0 :(得分:2)
您可以使用Bacon.matchers库来实现此类过滤器。
Bacon.fromArray( ["active", "inactive" ] )
.where().equalTo("active")
.onValue(function(val) {
document.body.innerHTML += val
})