arr:任意数组,MAX1=传入任意第几大的数字,MAX2=传入任意第几大的数字 返回:条件相加之和
时间: 2024-09-14 20:17:15 浏览: 38
c语言编程题之数组操作至少是其他数字两倍大的最大数.zip
要根据要求创建一个函数,给定一个数组 `arr` 和两个整数 `MAX1` 和 `MAX2`(假设它们是非负的并且 `MAX1 < MAX2`),该函数将返回数组中最大值的 `MAX1` 个元素之和以及第二大值的 `MAX2-MAX1` 个元素之和。这里是一个简单的 JavaScript 实现:
```javascript
function sumOfTopElements(arr, MAX1, MAX2) {
if (!Array.isArray(arr) || !Number.isInteger(MAX1) || !Number.isInteger(MAX2) || MAX1 < 0 || MAX2 <= MAX1) {
throw new Error("Invalid input. Please provide a non-empty array and valid positive integers for MAX1 and MAX2.");
}
arr.sort((a, b) => b - a); // 将数组降序排列
let sum1 = arr.slice(0, MAX1).reduce((acc, curr) => acc + curr, 0);
let sum2 = arr.slice(MAX1, MAX2).reduce((acc, curr) => acc + curr, 0);
return sum1 + sum2;
}
```
这个函数首先检查输入是否有效,然后对数组进行降序排序。接着,使用 `slice()` 方法获取指定数量的最大元素并计算它们的和,最后返回两者的总和。
阅读全文