将数组对象分组,拆分为多个数组

时间:2025-02-14 07:00:16
将数组中的对象数据按照某个属性值进行分组,拆分为多个数组
let list = [{
      "name": "aa",
      "sex": '0'
    },
    {
      "name": "bb",
      "sex": '1'
    },
    {
      "name": "cc",
      "sex": '0'
    },
    {
      "name": "dd",
      "sex": '1'
    }];

将数组数据按照性别进行分组

function groupBy(arr, fn) {
	let group = {}
	(item => {
		let type = (fn(item))
		group[type] =group[type] || []
		group[type].push(item)
	})
	
	return (group).map(item => {
		return group[item]
	})
}

let res = groupBy(list, function(res) {
	return 
})
(res)
/**
	[
		[
			{ name: 'aa', sex: '0' }, { name: 'cc', sex: '0' }
		],
		[
			{ name: 'bb', sex: '1' }, { name: 'dd', sex: '1' }
		]
	]
**/
包含的方法 (data),返回值为数组
  • data为对象:返回数组内容为对象的key
    obj = { name: ‘aa’, age: ‘18’, sex: 1 }
    (obj) ⇒ [‘name’, ‘age’, ‘sex’]

  • data为字符串或数组:返回数组内容为下标索引
    arr = [‘a’, ‘b’, ‘c’]
    str = ‘hello’
    (arr) ⇒ [‘0’, ‘1’ ,‘2’]
    (str) ⇒ [‘0’, ‘1’ ,‘2’, ‘3’, ‘4’]