将两个集合合并为一个集合

Backbone.js Combine two collection into one

本文关键字:集合 一个 两个 合并      更新时间:2023-09-26

在backbone或underscore中是否存在将两个集合合并为一个集合的方法?我想要两个或更多的集合添加到一个集合。基本上有两个集合

第一集

[
    {
        name: "Bob"
        date: "Thu Mar 29 2012"
    },
    {
        name: "James"
        date: "Fri Mar 30 2012"
    },
]
第二次收集

[
   {
        name: "Dylan"
        date: "Fri Mar 30 2012"
    },
    {
        name: "Stanley"
        date: "Sat Mar 31 2012"
    },
]

final desired json

[
    {
        name: "Bob"
        date: "Thu Mar 29 2012"
    },
    {
        name: "James"
        date: "Fri Mar 30 2012"
    },
    {
        name: "Dylan"
        date: "Fri Mar 30 2012"
    },
    {
        name: "Stanley"
        date: "Sat Mar 31 2012"
    },
]

您可以将一个集合中的所有模型添加到另一个集合中:

var first = new Backbone.Collection([ { name: "Bob" }, { name: "Joy" } ]),
    second = new Backbone.Collection([ { name: "Ann" }, { name: "Tim" } ]);
second.add(first.models);
console.log(second.models); // logs all four models

您也可以使用几个Backbone。收集方法来过滤您想要添加的模型:

second.add(first.where( { name: "Bob" }));

注意,集合的url属性通常决定了它的模型的url。在具有不同url的集合之间移动RESTful模型并不是一个好主意。