如何编写一个函数来查找数组中最大整数的索引?

时间:2018-10-23 02:07:39

标签: javascript arrays function

我正在尝试编写一个函数,该函数将找到数组中最大数字的索引,但是当前的函数由于数组中存在负数而被破坏。这是我到目前为止的代码。

export let maxIndex = (a: number[]): number => {
    let biggest = -9000000000; // use to keep track of largest element
    if (a.length === 0) {
        return -1;
    } else {
        for (let i = 0; i < a.length; i++) {
            if (a[i] > biggest) {
                biggest = a[i]; 
            }
        }

    }
    return a[biggest]; 
};

1 个答案:

答案 0 :(得分:0)

您的return a[biggest];将返回找到的最大元素的索引处的数字(例如,[0, 2, 4, 6]将返回a[6],它解析为{{1} },对于您要完成的工作没有意义。

您不仅需要跟踪迄今为止找到的最大数字,还要跟踪最后找到的最大数字的 index 。另外,如果将索引变量初始化为undefined,则无需进行初始-1测试:

if

另一种方法是传播到const maxIndex = (a) => { let biggestNum = -Infinity; // use to keep track of largest element let biggestIndex = -1; for (let i = 0; i < a.length; i++) { if (a[i] > biggestNum) { biggestNum = a[i]; biggestIndex = i; } } return biggestIndex; }; console.log(maxIndex([0, -1, -2])); console.log(maxIndex([])); console.log(maxIndex([30, 50, 40]));

Math.max