假设我有一个像这样的集合:
{
"id": 1,
"name": "jonas",
},
{
"id": 2,
"name": "jonas",
},
{
"id":3,
"name": "smirk",
}
如何得到 :
不同名称的数量,例如在本例中为 2
不同的名字,在这种情况下, jonas 和 smirk ?
假设我有一个像这样的集合:
{
"id": 1,
"name": "jonas",
},
{
"id": 2,
"name": "jonas",
},
{
"id":3,
"name": "smirk",
}
如何得到 :
不同名称的数量,例如在本例中为 2
不同的名字,在这种情况下, jonas 和 smirk ?
使用一些 Backbone 和 Underscore 魔法,结合collection.pluck
and _.uniq
:
pluck collection.pluck(attribute)
从集合中的每个模型中提取一个属性。相当于调用 map,并从迭代器返回单个属性。uniq _.uniq(array, [isSorted], [iterator])
生成数组的无重复版本,使用 === 来测试对象是否相等。
[...]
var c = new Backbone.Collection([
{id: 1, name: "jonas"},
{id: 2, name: "jonas"},
{id: 3, name: "smirk"}
]);
var names = _.uniq(c.pluck('name'));
console.log(names.length);
console.log(names);