根据遍历数组每一项,对象中的某一个属性分类数据 和for… in…的使用
let data= [
{
key: 1,
name: "John Brown",
age: 32,
color:"red"
},
{
key: 2,
name: "John Brown",
age: 32,
color:"red"
},
{
key: 3,
name: "John Brown",
age: 32,
color:"red"
},
{
key: 4,
name: "John Brown",
age: 32,
color:"gold"
},
{
key: 5,
name: "John Brown",
age: 32,
color:"gold"
},
{
key: 6,
name: "John Brown",
age: 32,
color:"gold"
},
{
key: 7,
name: "John Brown",
age: 32,
color:"pink"
},
{
key: 8,
name: "John Brown",
age: 32,
color:"pink"
},]
let newData = {}
let newList = []
data.forEach(item=>{
//这里根据颜色分类
if(Object.keys(newData).indexOf(item.color)===-1){
newData[item.color]=[]
}
newData[item.color].push(item)
})
运行结果:
我们可以再利用for…in…合并数据
for(let key in newData){
newList.push(newData[key])
}