属性と値のコレクション内のモデルをトラバースするこの気の利いた関数があります。値が見つかった場合は、true を返します。
多くのドキュメントを調べた後でも、コレクションを適切にトラバースする方法と検索する方法について少し混乱しています。underscorejs(私の場合はlodash)がバックボーンにフックされているので、.eachでコレクションをトラバースします
if (model.get(attribute)===value)
コレクション全体をトラバースする前に false を返すため、後ろに else を付けませんでした。コールバック関数は不要な複雑さのように聞こえますが、間違っているかもしれません (数か月前に 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
};
});