Javascript 如何找到每个部门的最高工资,,
如何找到每个部门的最高工资Javascript 如何找到每个部门的最高工资,,,javascript,node.js,Javascript,Node.js,如何找到每个部门的最高工资 let emp =[ { 'name':"A", 'sal':86879, 'dept':1 }, { 'name':"B", 'sal':3453674, 'dept':2 }, { 'name':"C", 'sal':568867,
let emp =[
{
'name':"A",
'sal':86879,
'dept':1
},
{
'name':"B",
'sal':3453674,
'dept':2
},
{
'name':"C",
'sal':568867,
'dept':3
},
{
'name':"D",
'sal':34661,
'dept':1
},
{
'name':"E",
'sal':896556,
'dept':2
},
{
'name':"F",
'sal':67678,
'dept':3
},
{
'name':"G",
'sal':45654,
'dept':4
},{
'name':"H",
'sal':35677,
'dept':4
}
];
您可以通过获取
dept
和val
并收集对象中的最大值来减少数组
const
数据=[{name:“A”,sal:86879,dept:1},{name:“B”,sal:3453674,dept:2},{name:“C”,sal:568867,dept:3},{name:“D”,sal:34661,dept:1},{name:“E”,sal:896556,dept:2},{name:“F”,sal:6767678,dept:3},{name:“G”,sal:45654,dept:4},{name:“H”,sal:35677,dept:4},
结果=data.reduce(
(r,{dept,sal})=>(r[dept]=Math.max(r[dept]??-Number.max_值,sal),r),
{}
);
控制台日志(结果)代码>您可以查看数组中的每个条目,并通过将它们存储在这样一个单独的对象中来检查每个部门中的最高值
const maxSal = {};
emp.forEach(e=>{
if (!maxSal[e.dept] || maxSal[e.dept] < e.sal){
maxSal[e.dept] = e.sal;
}
});
constmaxsal={};
emp.forEach(e=>{
如果(!maxSal[e.dept]| maxSal[e.dept]
maxSal是一个带有部门键的对象,该值是最高工资在这里执行findHighestSalary
函数将返回最高工资,只需传递部门号作为参数
let emp =[
{
'name':"A",
'sal':86879,
'dept':1
},
{
'name':"B",
'sal':3453674,
'dept':2
},
{
'name':"C",
'sal':568867,
'dept':3
},
{
'name':"D",
'sal':34661,
'dept':1
},
{
'name':"E",
'sal':896556,
'dept':2
},
{
'name':"F",
'sal':67678,
'dept':3
},
{
'name':"G",
'sal':45654,
'dept':4
},{
'name':"H",
'sal':35677,
'dept':4
}
];
function findHighestSallary(dept) {
let myarray = [];
emp.map((x) => {
if(x.dept === dept){
myarray.push(x);
}
})
myarray.sort(function(a, b) {
return b.sal - a.sal;
});
return myarray[0].sal;
}
console.log(findHighestSallary(1));
什么不起作用?如何解决?制作一个对象。循环数组。设置部门的密钥。如果不存在,则添加工资。如果确实存在,请检查薪资是否更高。如果设置了它。reduce()