javascript - 数组中最小数和最大数之差
问题描述
我坚持以下任务。
编写此函数以获取一个数组并返回最小数字和最大数字之间的差。
我已经尝试了以下但不断收到错误。我究竟做错了什么?
function differenceMinMax(array) {
var arrayMin = array[0];
var arrayMax = array [0];
for (var i=0; i <= array.length; i++) {
if (array[i] < arrayMin) {
arrayMin = array[i];
}
if (array[i] > arrayMax) {
arrayMax = array[i];
}
}
return arrayMax - arrayMin;
}
解决方案
为了使您的示例正常工作,您可以在 if/else 子句中更改您的else
to else if
。此外,更改i <= array.length
为i < array.length
. 数组的长度在数值上总是大于其最高索引(1),因为在 javascript 中索引从 0 开始。
以下是如何使用 ES6 以更少的代码来做到这一点。
const diff = (arr) => Math.max(...arr) - Math.min(...arr);
const arr1 = [1, 2, 3, 4, 5];
const arr2 = [99, 0, -99];
console.log(diff(arr1)); // Logs 4
console.log(diff(arr2)); // Logs 198
推荐阅读
- reactjs - Webpack 4 热重载不适用于 React TypeScript
- r - 用 R 中另一列的值替换来自一列的多个观察值
- kotlin - Kotlin - 打印函数表达式
- python - 通过 http 请求将 Matplotlib 图作为 numpy 数组发送
- swift - 被电话打断后继续录制音频,AVAudioRecorder
- c - 是否有一种方式可以逐位修改向量/数组的元素?
- c++ - C++ std::variant vs std::any
- django - Django - 传递一个字典来形成构造函数并在类中全局可用
- sql - JPA SELECT 示例中的单个字符
- php - PHP unlink() 内容仍然出现