如何在没有返回选项的情况下在JavaScript中完成功能

我在for循环中使用函数时遇到了麻烦。首先看一下代码,请:如何在没有返回选项的情况下在JavaScript中完成功能

let list1 = [4168,3925,858,2203,440,185,2886,160,1811,4272,4333,2180,174,157,361,1555];  

let max = 0;

function maximum(listNumb1) {

\t for (let i = 0; i < listNumb1.length; i++) {

\t \t if (listNumb1[i] > max) {

\t \t \t max = listNumb1[i];

\t \t \t return max;

\t \t }

\t }

}

console.log(maximum(list1));

好吧,我试图让功能会发现上面的数组中的最大数量。我没有一个函数,代码工作,但是当我想要一个函数,所以我可以用它与多个数组,我卡住了,我没有得到所需的输出。

我知道我的问题在哪里。这是回报的一部分。它停止代码执行进一步,我得到的数组的第一个数字作为输出,因为for循环在返回后停止。

我要求解决方案我应该如何结束,或者我应该使用什么而不是返回,所以我不会打破循环,函数将继续迭代通过数组中的其余数字,并且最大变量会改变,直到找到数组中最大的数字?

回答:

您需要迭代到最后,因为您不知道最后一个元素是否大于之前找到的值。

将返回值移到该函数的末尾,并使用局部变量max保留临时最大值。

一个好主意是从数组的第一个元素开始,作为max的值,并从索引1开始迭代。

function maximum(array) {  

var max = array[0],

i;

for (i = 1; i < array.length; i++) {

if (array[i] > max) {

max = array[i];

}

}

return max;

}

let list1 = [4168, 3925, 858, 2203, 440, 185, 2886, 160, 1811, 4272, 4333, 2180, 174, 157, 361, 1555];

console.log(maximum(list1));

回答:

这是更好地做一个函数,将回报最大文件,而不是修改一些全局变量。

你可以做这样的事情:

let list1 = [4168, 3925, 858, 2203, 440, 185, 2886, 160, 1811, 4272, 4333, 2180, 174, 157, 361, 1555];  

function findMax(list) {

return list.reduce((currentMax, currentNumber) => {

return Math.max(currentNumber, currentMax);

}, 0);

}

console.log(findMax(list1));

此功能使用Array.reduce,谋取最大价值。

回答:

另一种方法来找到最大是spreading到Math#max:

const list1 = [4168,3925,858,2203,440,185,2886,160,1811,4272,4333,2180,174,157,361,1555];  

const maximum = (arr) => Math.max(...arr);

console.log(maximum(list1));

以上是 如何在没有返回选项的情况下在JavaScript中完成功能 的全部内容, 来源链接: utcz.com/qa/257718.html

回到顶部