将一维数组通过相同的id调整为二维数组
1.接口返回的数据
{
"employees":[
{
"employee_id":2,
"employee_part":"0%",
"participation_id":3,
"ratio":"5%"
},
{
"employee_id":4,
"employee_part":"0%",
"participation_id":3,
"ratio":"22%"
},
{
"employee_id":5,
"employee_part":"0%",
"participation_id":3,
"ratio":"10%"
},
{
"employee_id":7,
"employee_part":"0%",
"participation_id":2,
"ratio":"11%"
}
]
}
2.修改返回数据
第一种情况,将相同的ID拿取出来,生成一个对象数组
实现代码
const employees = res.employees
var newData = []
employees.forEach(function(v, i) {
var n
for (var i = 0; i < newData.length; i++) {
var t = newData[i]
if (t.participation_id == v.participation_id) {
n = t
break
}
}
if (!n) {
n = { participation_id: v.participation_id, rows: [] }
newData.push(n)
}
// delete v.ordernumber
delete v.participation_id
n.rows.push(v)
})
console.log(newData)
第2种情况,只生成一个二维数组,每列中都含有对应的id
实现代码
const employees = res.employees
var arrayTwo = Object.values(employees.reduce((res, item) => {
res[item.participation_id] ? res[item.participation_id].push(item) : res[item.participation_id] = [item]
return res
}, {}))
console.log(arrayTwo)