2012-08-17 35 views
4

假設我有一個集合,如:如何找到不同值的數量從集合

{ 
    "id": 1, 
    "name": "jonas", 
    }, 
    { 
    "id": 2, 
    "name": "jonas", 
    }, 
    { 
    "id":3, 
    "name": "smirk", 
    } 

如何獲得:

不同的名稱數,像在這種情況下,2

不同的名字,在這種情況下,喬納斯和傻笑?

回答

12

隨着一些骨幹和下劃線魔法,結合collection.pluck_.uniq

拔毛 collection.pluck(屬性)
普呂克從集合中的每個模型的屬性。相當於調用map,並從迭代器中返回一個屬性。

的uniq _.uniq(數組,[isSorted],[迭代])
可生產陣列的無重複的版本,使用===測試對象的相等。
[...]

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); 

並演示http://jsfiddle.net/nikoshr/PSFXg/

相關問題