2015-12-14 35 views
1
list = [ 
    { 
     "Id": "547370FD-5185-47F7-B980-C439A010E028", 

     "FirstName": "Rahul", 
     "LastName": "Grag" 
    }, 
    { 

     "Id": "547370FD-5185-47F7-B980-C439A010E027", 
     "FirstName": "Mohit", 
     "LastName": "V" 
    }, 
    { 

     "Id": "547370FD-5185-47F7-B980-C439A010E026", 
     "FirstName": "Sanjeev", 
     "LastName": "Kumar" 
    }, 
    { 

     "Id": "547370FD-5185-47F7-B980-C439A010E025", 
     "FirstName": "Manish", 
     "LastName": "Kumar" 
    }, 
    { 

     "Id": "547370FD-5185-47F7-B980-C439A010E024", 
     "FirstName": "Rahul", 
     "LastName": "Jain" 
    }, 
    { 

     "Id": "547370FD-5185-47F7-B980-C439A010E023", 
     "FirstName": "Shikha", 
     "LastName": "K" 
    } 
]; 

我需要將這個對象分組有關FirstName的第一個字母。 我該怎麼做?Linq JS分組的對象,有名字第一個字母

+0

group or sort?你能提供你的預期產出和你的努力嗎? –

回答

0

這將創建一個對象,其中的關鍵字是名稱的第一個字母。該值是FirstName具有相同首字母的所有列表對象的數組。

var names = {}; 

list.forEach(function(obj) { 
    if (!obj.FirstName || !obj.FirstName.length) return; 

    var firstLetter = obj.FirstName[0]; 

    if (!names[firstLetter]) { 
    names[firstLetter] = []; 
    } 
    names[firstLetter].push(obj); 
}); 

如果你不知道的的firstName的第一個字母是否將是一個資本,你總是可以做firstLetter.toUpperCase()來強制執行。

0

假設您使用linq.js,這是微不足道的。

var query = Enumerable.From(list).GroupBy("$.FirstName[0]"); 
相關問題