描述
项目开发中遇到一个需要对数组数据进行分组的需求,数组中存的是对象,需要根据对象中的某个字段分组,loash.groupBy可以解决这个问题
来看下需要分组的数据结构:
let ary = [
{ name: 'apple', position: 2 },
{ name: 'banana', position: 3 },
{ name: 'watermelon', position: 1 },
{ name: 'cherry', position: 2 },
{ name: 'orange', position: 1 }
]
分组后的数据结构:
{
1: [
{ name: "watermelon", position: 1 },
{ name: "orange", position: 1 },
],
2: [
{ name: "apple", position: 2 },
{ name: "cherry", position: 2 },
],
3: [{ name: "banana", position: 3 }],
}
此处是根据position这个字段将数据分组,方法如下:
let result = lodash.groupBy(ary, 'position')
结果返回一个对象结构的数据,要分组的字段position对应的值作为key, position相同的数据放入一个数组中作为value值
总结
有点像SQL中的group by语法。可以根据需要再对分组后的数据结构进行处理奥~ (碎碎念...好长时间没写文章了,因为迷上了加勒比海盗--随便找个理由hehe,杰克船长好帅。嗯,Fighting!!)