原数据:
转换为:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
let beforeData=[
{ name: "tony", id: "1", age: "20" },
{ name: "jack", id: "2", age: "21" },
{ name: "tony", id: "3", age: "50" },
{ name: "jack", id: "4", age: "10" },
{ name: "mark", id: "5", age: "22" },
{ name: "mark", id: "6", age: "40" }
]
let tempArr=[],afterData=[]
for(let i =0;i<beforeData.length;i++){
// console.log(beforeData[i])
console.log(tempArr.indexOf(beforeData[i].name))
//检查tempArr是否存在beforeData的name值,为-1不存在
if(tempArr.indexOf(beforeData[i].name)==-1){
//不存在此name,因此加入数据
afterData.push({
name:beforeData[i].name,
data:[beforeData[i]]
})
//同时tempArr加入相应的name值
tempArr.push(beforeData[i].name)
}else{
//tempArr存在name值
for(let j=0;j<afterData.length;j++){
// console.log(afterData[i])
if(afterData[j].name==beforeData[i].name){
afterData[j].data.push(beforeData[i])
break
}
}
}
}
console.log(beforeData)
console.log(afterData)
</script>
</body>
</html>