下划线 _.filter 条件
underscore _.filter condition
是否可以使用下划线做这样的事情_.filter?
self.getCols = function (columnId) {
return cols = _.filter(self.model.cols(), function(c) {
return (
(c.Id === self.model.Id()) &&
((columnId === undefined) ? '' : c.columnId === columnId)
);
});
};
现在我在 columnId 上使用的条件无效。对不起我的错,我只是以适当的方式编辑。
filter
并不真正关心你在回调中做了什么,只要你 return 是真实的(包括当前项目)或虚假的(不包括当前项目)。
至于表达式,仅在以下情况下为真:
c.Id === self.model.Id()
columnId
存在
columndId
等于 c.columnId
.
所以我们这样写:
c.Id === self.model.Id() && columnId && c.columnId === columnId
在这种情况下,您的 return 应该是(我认为):
return c.columnID || c.Id === self.model.ID();
假设 'columns you specify' 被解释为 Id
属性 等于 self.model.ID()
的列
我不太确定如何处理 self.model.Id()
,但我认为这与您描述的内容(包括评论)相符:
self.getCols = function getCols (columnId) {
var cols = self.model.cols();
if (columnId === undefined) {
return cols;
}
return _.filter(cols, function (c) {
return c.columnId === columnId;
});
}
是否可以使用下划线做这样的事情_.filter?
self.getCols = function (columnId) {
return cols = _.filter(self.model.cols(), function(c) {
return (
(c.Id === self.model.Id()) &&
((columnId === undefined) ? '' : c.columnId === columnId)
);
});
};
现在我在 columnId 上使用的条件无效。对不起我的错,我只是以适当的方式编辑。
filter
并不真正关心你在回调中做了什么,只要你 return 是真实的(包括当前项目)或虚假的(不包括当前项目)。
至于表达式,仅在以下情况下为真:
c.Id === self.model.Id()
columnId
存在columndId
等于c.columnId
.
所以我们这样写:
c.Id === self.model.Id() && columnId && c.columnId === columnId
在这种情况下,您的 return 应该是(我认为):
return c.columnID || c.Id === self.model.ID();
假设 'columns you specify' 被解释为 Id
属性 等于 self.model.ID()
我不太确定如何处理 self.model.Id()
,但我认为这与您描述的内容(包括评论)相符:
self.getCols = function getCols (columnId) {
var cols = self.model.cols();
if (columnId === undefined) {
return cols;
}
return _.filter(cols, function (c) {
return c.columnId === columnId;
});
}