モデルのコレクションをフィルタリングしようとしていますが、フィルターのみがコレクションではなくオブジェクトを返すようです。私が読んだことから、_() でフィルター関数をラップすると、フィルターに組み込まれている underscore.js を使用し、同じ型を返すようになります。しかし、これは機能していないようです。コードは以下のとおりです。
var clients = this.get('clients')
if (clients instanceof Backbone.Collection) {
console.log('clients is a collection');
} else if (_.isObject(clients)) {
console.log('clients is an object');
} else if (_.isArray(clients)) {
console.log('clients is an array');
} else {
console.log('clients is not known');
}
clients = _(clients.filter(function (client) {
return client.get('case_studies').length;
}));
if (clients instanceof Backbone.Collection) {
console.log('clients is a collection');
} else if (_.isObject(clients)) {
console.log('clients is an object');
} else if (_.isArray(clients)) {
console.log('clients is an array');
} else {
console.log('clients is not known');
}
これは私の出力です:
clients is a collection
clients is an object