Ich übergebe ein Array an eine neue Sammlung. Ist es möglich, das Array zu filtern, indem Sie den zweiten Parameter übergeben und das Attr des Objekts im Array überprüfen und eine Kollektion erstellen, wenn sie den Filtertest besteht.
%Vor%Kann ich nur für das Objekt eine Sammlung erstellen, die weniger als 30 Jahre alt ist.
Sie können _.filter auf Ihrem Array verwenden, bevor Sie in die Sammlung gelangen
%Vor% Oder Sie können Ihre benutzerdefinierte Filterlogik in Ihre Sammlung initialize
verschieben, wo Sie das Array models
erhalten, was Sie ändern / filtern können
Demo JSFiddle .
Sie können dies erweitern, indem Sie das Filterprädikat im Optionsparameter
angeben %Vor%Und benutze es mit
%Vor%Sie sind an der Validierung interessiert, bevor Sie die Sammlung erstellen, genau wie bei der vorherigen Antwort. Wir erstellen eine Funktion, mit der Sie diese Strategie für die Validierung einer beliebigen Sammlung basierend auf einer gewünschten Bedingung wiederverwenden können.
%Vor%Nun können wir eine solche Sammlung erstellen, die bestätigt, dass jedes Element ein Alter von mindestens 30 hat:
%Vor%Wenn Sie nur die Elemente filtern möchten, die Sie nicht mögen - anstatt einen Fehler zu erzeugen, wenn nicht alle validieren, können Sie etwas tun:
%Vor%Alternativ können Sie Ihren eigenen gefilterten Auflistungskonstruktor zur Wiederverwendung als solchen erstellen
%Vor%Was uns ermöglicht:
%Vor% Die andere Antwort schlägt _.filter
gegenüber dem nativen Array.filter vor, dies kann nützlich sein, wenn Sie alte Browser unterstützen müssen.
Tags und Links backbone.js