无法使数组正确返回

时间:2017-07-03 18:57:06

标签: javascript arrays max arr

创建一个名为findMax的函数。它接受一个称为数字的参数 代表一组数字。 在您的函数中,找到数组中的最大数字。 返回结果。

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class main {

    public static void main(String[] args) throws IOException{

        try(Reader reader = new InputStreamReader(main.class.getResourceAsStream(
               "/Users/edwardk/IdeaProjects/practice_json/small_incidents.json"),"UTF-8")){
            Gson gson = new GsonBuilder().create();
            Person p = gson.fromJson(reader, Person.class);
            System.out.println(p);
        }
    }
}

code

我收到的错误消息是

  

你回来了'4'。这不太对。最大值为5。

2 个答案:

答案 0 :(得分:0)

您在屏幕截图中发布的代码似乎与问题规范相矛盾:规范要求您返回元素,但您的实现会返回索引。如果你确实想要找到最大元素,那么这就是一个有趣的单行:

function findMax(numbers){
    return numbers.reduce((max, n)=> n > max ? n : max);
}

如果您要查找max元素的索引,可以重复使用上述函数:

function findMaxIndex(numbers){
    return numbers.indexOf(findMax(numbers));
}

demo

答案 1 :(得分:0)

这样做的一种简单方法是每次 for Loop 找到更大的数字时不断更改maxNumber,如下所示:

num = [5, 3, 2, 7, 9, 10, 200];
findMax(num);

function findMax(numbers) {
    maxNumber = number[0];
    for (i = 0; i < numbers.length; i++) {
    if (numbers[i] > maxNumber) {
        maxNumber = numbers[i]
    }
  }
  return maxNumber;
}

这将返回 200 并且应该可以正常工作:)