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
第一个字母对这些对象进行分组。
我该怎么办?
答案 0 :(得分: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()
强制执行该操作。
答案 1 :(得分:0)
假设您正在使用linq.js,这很简单。
var query = Enumerable.From(list).GroupBy("$.FirstName[0]");