var array=[
{id:1,name:'小明',sex:'男'},
{id:2,name:'小剛',sex:'男'},
{id:3,name:'小紅',sex:'女'},
{id:4,name:'小花',sex:'女'},
{id:5,name:'小甜甜',sex:'女'},
]
var obj={},newArr=[];
array.forEach(function(item,suffix){
//根據對象的屬性是唯一的,將值作為對象的屬性名
if(!obj[item.sex]){
var arr=[];
arr.push(item);
newArr.push(arr);
obj[item.sex]=item;
}else{
newArr.forEach(function(value,index){
//如果已經存在 就循環新組的值將值插入屬性相同的數組里 為了防止重復添加 只要和第一個比較就可以了
if(value[0].sex==item.sex){
value.push(item)
}
})
}
})
console.log(obj);
console.log(newArr)
來源:https://www.cnblogs.com/yuzihong/p/10495511.html
方法二:
var arr=[{name:2,id:3},{name:2,id:4},{name:3,id:5},{name:3,id:6},{name:1,id:1},{name:1,id:2}];
// 傳入一個數組
// 按照特定方式格式化
function sortArr(arr, str) {
var _arr = [],
_t = [],
// 臨時的變量
_tmp;
// 按照特定的參數將數組排序將具有相同值得排在一起
arr = arr.sort(function(a, b) {
var s = a[str],
t = b[str];
return s < t ? -1 : 1;
});
if ( arr.length ){
_tmp = arr[0][str];
}
// console.log( arr );
// 將相同類別的對象添加到統一個數組
for (var i in arr) {
console.log( _tmp);
if ( arr[i][str] === _tmp ){
console.log(_tmp)
_t.push( arr[i] );
} else {
_tmp = arr[i][str];
_arr.push( _t );
_t = [arr[i]];
}
}
// 將最后的內容推出新數組
_arr.push( _t );
return _arr;
}
sortArr( arr, 'name');
來源:https://blog.csdn.net/wqnmlgbsz/article/details/118767609
擴展:
數組對象相同的key值合並,並且把對應的id放到一個數組
https://blog.csdn.net/qq_43765727/article/details/98485490
