我坚持下面的作业。
编码此函数以获取一个数组并返回最小和最大数字之间的差。
我尝试了以下操作,但始终出现错误。我在做什么错了?
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;
}
答案 0 :(得分:0)
为使示例工作,可以在if / else子句中将else
更改为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
答案 1 :(得分:0)
array [array.length]不存在,请更改
i <= array.lenght
到
i < array.length
更改
else (array[i] > arrayMax)
到
else if(array[i] > arrayMax)
答案 2 :(得分:0)
替换您的数组,然后尝试下面的代码,它将起作用。
var array = ['56', '1','9','0','20','2021'];
var max = min= 0;
for(var i=0; i<array.length; i++)
{
if(parseInt(array[i]) > parseInt(max))
{
max = array[i]
if(i == 0)
min = max
}
else if(parseInt(array[i]) < parseInt(min))
{
//console.log(max_2)
min = array[i];
}
}
console.log("Maximum Number In Your Array "+ max)
console.log("Manimum Number In Your Array "+min)
答案 3 :(得分:0)
//We are going to sort the array, find the first & last elem of the array and perform the operation
var array = [9, 12, 14, 3, 5, 67];
var difference = differenceBetweenLargestAndSmallestElement(array);
console.log(difference);
function differenceBetweenLargestAndSmallestElement(array) {
var sortedArray = array.sort(function(a, b) {
return a - b
});
console.log(sortedArray);
var firstElement = sortedArray[0];
var lastElement = sortedArray[sortedArray.length - 1];
return lastElement - firstElement;
}
答案 4 :(得分:-1)
尝试:'var arrayMin = 0; var arrayMax = 0;'而不是'var arrayMin = array [0]; var arrayMax = array [0]'