首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让循环读取数字数组并找到最大值?

如何让循环读取数字数组并找到最大值?
EN

Stack Overflow用户
提问于 2020-10-31 15:08:07
回答 1查看 47关注 0票数 0

我知道一个循环会重复指定的次数,但是我怎么做才能让它读取整个数组并返回某个值呢?我试图返回两个测试题的最大值,但我得到的唯一结果是数组的第一个值。

代码语言:javascript
复制
function question1(numberArray) {
  for (let i = 0; i < numberArray.length; i = i + 1) {
    number = numberArray[i];
    return number;
  }
}

function testQuestion1() {
  let testArray = [10, 45, 33, 67, 433, 33];
  let answer1 = question1(testArray);
  if(question1(testArray) == 433) {
    console.log("Question 1:Found the largest");
  } else {
    console.log("Question1: For array ", testArray, " returned ", answer1, "Which is not the largest");
  }

  let testArray2 = [10, -900, 3000, 22, 33, 67, 433, 33];
  let answer2 = question1(testArray);
  if(question1(testArray2) == 3000) {
    console.log("Question 1: Found the largest");
  } else {
    console.log("Question 1: For array ", testArray2, " returned ", answer2, "Which is not the largest");
  }
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-31 19:16:39

Math.max与数组扩展运算符一起使用(也在链接中):

代码语言:javascript
复制
function myMax(numberArray) {
  return Math.max(...numberArray);
}

使用for循环和max变量:

代码语言:javascript
复制
function myMax(numberArray) {
  var max=-Infinity;
  for(var i=0; i<numberArray.length; i++)
    if(numberArray[i]>max)
      max=numberArray[i];
  return max;
}

使用reduce

代码语言:javascript
复制
function myMax(numberArray) {
  return numberArray.reduce((max, arrayItem)=>Math.max(max, arrayItem),-Infinity);
}

所有情况下,如果numberArray为空,则返回-Infinity

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64619302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档