将数组中的对象数据按照某个属性值进行分组,拆分为多个数组
示例数组结构
let list = [{
"name": "aa",
"sex": '0'
},
{
"name": "bb",
"sex": '1'
},
{
"name": "cc",
"sex": '0'
},
{
"name": "dd",
"sex": '1'
}];
将数组数据按照性别进行分组
function groupBy(arr, fn) {
let group = {}
arr.map(item => {
let type = JSON.stringify(fn(item))
group[type] =group[type] || []
group[type].push(item)
})
return Object.keys(group).map(item => {
return group[item]
})
}
//调用返回值
let res = groupBy(list, function(res) {
return res.sex
})
//输出结果
console.log(res);
结果数据结构示例
[
[
{ name: 'aa', sex: '0' }, { name: 'cc', sex: '0' }
],
[
{ name: 'bb', sex: '1' }, { name: 'dd', sex: '1' }
]
]
包含的方法 Object.keys(data),返回值为数组
data为对象:返回数组内容为对象的key
obj = { name: ‘aa’, age: ‘18’, sex: 1 }
Object.key(obj) ⇒ [‘name’, ‘age’, ‘sex’]
data为字符串或数组:返回数组内容为下标索引
arr = [‘a’, ‘b’, ‘c’]
str = ‘hello’
Object.keys(arr) ⇒ [‘0’, ‘1’ ,‘2’]
Object.keys(str) ⇒ [‘0’, ‘1’ ,‘2’, ‘3’, ‘4’]
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!