var a=[{name:1,key:'a'},{name:2,key:'b'},{name:3,key:'a'},{name:3,key:'b'}]
var b = {};
$.each(arr, function (i,v){
var g = v[keyName],
c = b[g];
if(c){
b[g].push(v);
}else{
b[g] = [v];
};
});
var b = {};
a.forEach(function (obj) {
var array = b[obj['key']] || [];
array.push(obj);
b[obj['key']] = array;
});
console.log(b.a.length);
console.log(b.b.length);
var b = a.reduce(function(v, k) {
var filters = v.filter(function(data) {
return data.key === k.key
});
if (filters.length === 0) {
v.push({
key: k.key,
name: [k.name]
})
} else {
filters[0].name.push(k.name)
};
return v
}, [])
console.log(b)
//[{"key":"a","name":[1,3]},{"key":"b","name":[2,3]}]
//var a =........;
var result = new Array();
for(var index in a){
result[a[index].key] = new Array();
result[a[index].key].push(a[index]);
}
console.log(result);
这是个简单但经典的问题。for in属于js语法,请自行搜索参考资料。
https://lodash.com/docs#groupBy