创建一个称为“最大”的函数,该函数接受数字数组并返回最大数字。
我创建了最大的函数。我做了一个for循环来检查数组中最大的数字。
function largest(a){
const num = 0;
for (let i = 0; i < a.length; i++){
if (a[i] >= num){
num = a[i];
return num;
}
}
}
module.exports.largest = largest;
该代码不起作用。
答案 0 :(得分:1)
您将num
变量标记为常量。这意味着它不会根据您的比较进行更新。改为使用let num = 0;
。
另外,看看您的范围。在if语句内部,检查该数组中的第一个元素,将其与最初为0的num
比较,然后立即返回。您需要将return语句置于循环范围之外。
答案 1 :(得分:0)
首先,如果您查看开发人员工具控制台,将会看到此错误:
TypeError:对const
num
的无效分配
它与以下行有关:
num = a[i];
您已经用num
定义了const num = 0
,但是以后不能更改用const
定义的变量(因此会出现错误),因此您的定义应改用let
。 / p>
第二,一旦该代码不会导致错误,就是您的函数返回得太早的问题。您的退货正在循环中-完成第一项检查后,您将返回并且循环不会继续进行。因此,您可以将返回的代码移到循环后的 行,以确保所有迭代都可以运行。
function largest(a){
let num = 0;
for (let i = 0; i < a.length; i++){
if (a[i] >= num){
num = a[i];
}
}
return num;
}
const arr = [1, 141, 23, 10, 9, 92];
console.log(largest(arr));
有两种快捷方式可以在您使用的数组中查找数量最大的快捷方式:
第一个spreads
出数组,以便Math.max
可以使用它。
const arr = [1, 141, 23, 10, 9, 92];
console.log(Math.max(...arr));
或者,您可以将数组从最小到最大排序,然后弹出最后一个元素。
const arr = [1, 141, 23, 10, 9, 92];
console.log(arr.sort((a, b) => a > b).pop());