假设我有一个类似的集合:
{
"id": 1,
"name": "jonas",
},
{
"id": 2,
"name": "jonas",
},
{
"id":3,
"name": "smirk",
}
我如何获得:
不同名称的数量,例如2
不同的名字,在这种情况下,jonas和smirk?
答案 0 :(得分:12)
使用一些Backbone和Underscore魔法,结合collection.pluck
和_.uniq
:
采摘 collection.pluck(属性)
从集合中的每个模型中获取属性。等效于调用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);