我需要连接 2 个对象数组的值并从中制作第三个。我使用 es6 方法 find() 来制作它,但有人问我一些 es5 代码来了解这段逻辑。我想使用 indexOf() 但不幸的是我不知道如何制作它......
感谢您的帮助。
const caByEmployee = [{
id: 8,
period1: 652.40,
period2: 3831.73,
name: 'Tam'
},
{
id: 18,
period1: 421.95,
period2: 1036.18,
name: 'Nathalie'
},
{
id: 20,
period1: 300.5,
period2: 1179.15,
name: 'Liliane'
}
]
const attendanceByEmployee = [{
id : 1,
period1 : 0,
period2 : 86
},
{
id : 8,
period1 : 98,
period2 : 520
},
{
id : 18,
period1 : 70,
period2 : 49
},
{
id : 20,
period1 : 4,
period2 : 227
}
]
const averageCartByEmployee = caByEmployee.map(function (ca) {
var attendance = attendanceByEmployee.find(function (attendance) {
return attendance.id === ca.id;
});
return {
id : ca.id,
name : ca.name,
period1: ca.period1 / attendance.period1 || 0,
period2: ca.period2 / attendance.period2 || 0
};
});
这给出了这样的结果,这完全没问题,但不是用 es5 制作的
[ { id: 8,
name: 'Tam',
period1: 6.657142857142857,
period2: 7.368711538461539 },
{ id: 18,
name: 'Nathalie',
period1: 6.027857142857143,
period2: 21.1465306122449 },
{ id: 20,
name: 'Liliane',
period1: 75.125,
period2: 5.194493392070485 } ]