LEET代码问题陈述,
你得到一个唯一整数数组salary,其中salary[i]是第i个员工的工资。返回不包括最低和最高工资的员工平均工资。在实际答案的10-5范围内的答案将被接受。
我希望以let sal = salary[0]
开始第一个索引,我想将其他工资与salary[0]
进行比较,如果它更少,我想将较低的工资推入一个新的数组。但是我不知道如何区分最低工资或完成这个问题
/**
* @param {number[]} salary
* @return {number}
*/
var average = function(salary) {
let sal = salary[0]
for(let i = 1; i < salary.length; i++){
if (sal > salary[i]) {
salary.map()
}
}
};
6条答案
按热度按时间neekobn81#
为此,我将对数组进行排序,然后删除第一个和最后一个元素,因为第一个元素将是最低的工资,最后一个元素将是最高的工资。然后,使用修剪后的数组,我会计算平均值:
编辑
根据@ManuelMB的评论,我调整了
sort
方法,通过回调函数强制按数值排序,而不是数组中项的字符串值。aydmsdu92#
eoxn13cs3#
下面的代码通过一次查看每个工资并评估其对计数、总数、最小值和最大值的影响来计算平均值。
在计算工资时,还不知道哪些是最低工资,哪些是最高工资,因此先将 * 所有 * 工资相加,最后再减去最低工资和最高工资。
wvyml7n54#
uujelgoq5#
首先,我们对
salary
数组进行排序,然后通过slice(1,-1)
删除最低工资和最高工资。对于
sort
函数,我们需要一个比较函数,因为默认的sort
函数像字符串一样对数字进行排序:1, 10, 2, 3, ...
然后用削减后的工资我们可以做平均值。
我还认为,如果
salary.length
小于3
,则解决方案应该计算情况。ES6解决方案
webghufk6#
你可以先对数组进行排序,然后再做任何你想做的事情