gpt4 book ai didi

javascript - 通过模型属性搜索 Backbone 集合 - 正确完成

转载 作者:行者123 更新时间:2023-11-30 08:08:40 24 4
gpt4 key购买 nike

我有一个漂亮的函数,它遍历集合中的模型以获取属性和值。如果找到该值,则返回 true。

看了很多文档后,我仍然对如何遍历正确收集以及如何搜索它。由于 underscorejs(在我的例子中是 lodash)连接到 Backbone 中,我确实使用 .each 遍历了集合

我没有在 if (model.get(attribute)===value) 之后加上 else 因为它会返回 false在遍历整个集合之前。回调函数听起来像是不必要的复杂化——但也许我错了(几个月前我开始使用 JS)

如果有提示和/或更好的解决方案,我将很高兴;-) 带有解释。提前致谢。

我使用 requirejs,这就是为什么我要通过 _,Bacbkone...

这是集合的样子:

function (_, Backbone, AppModels) {

var QueriesCollection = Backbone.Collection.extend({
model : AppModels.QueryModel,

search: function (attribute, value) {
var found = false;
this.each(function (model) {
if (model.get(attribute)===value) {
found = true;
}
});
return found;
}
});

return {
QueriesCollection: QueriesCollection
};
});

最佳答案

您还可以使用下划线 some (又名 any),这与您的 search 函数几乎相同,只是它需要一个函数参数作为其谓词,而不是键/值:

Returns true if any of the values in the list pass the iterator truth test. Short-circuits and stops traversing the list if a true element is found.

使用这个的实现更直接一些:

search: function (attribute, value) {
return this.some(function(x) {
return x.get(attribute) === value;
});
}

关于javascript - 通过模型属性搜索 Backbone 集合 - 正确完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13783443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com