1. nums.pop(nums[right])
用法错误
在 JavaScript 中,Array.prototype.pop()
方法是用于移除数组中的最后一个元素,并返回被移除的那个元素。它不接受参数作为要移除元素的值,而是直接移除数组末尾的元素。
正确的做法应该是先获取要移除的索引,然后使用该索引来移除元素。在这里,你想要移除的应该是索引为 right
的元素,正确写法应该是 nums.pop()
(这样会移除最后一个元素,在当前循环逻辑下符合需求)或者 nums.splice(right, 1)
(明确指定要移除索引为 right
的那个元素)。
2. nums.shift(nums[left])
用法错误
类似地,Array.prototype.shift()
方法用于移除数组的第一个元素,并返回被移除的元素。它同样不接受参数作为要移除元素的值,而是直接移除数组开头的元素。
正确的做法是,如果要移除索引为 left
的元素,可以使用 nums.splice(left, 1)
。
关于输出结果错误的原因
由于代码中存在上述错误的数组操作方法调用,导致数组 nums
的元素移除操作没有按照预期进行,从而使得后续计算平均值的逻辑也出现了偏差。
在正确的代码中,经过修正数组元素的移除操作后,循环应该能正确地从排序后的数组两端选取元素计算平均值,并最终得到正确的最小平均值。
以下是修正后的代码示例: