Javascript 找到最小值的索引时,我的断言失败了

Javascript 找到最小值的索引时,我的断言失败了,javascript,arrays,selection-sort,Javascript,Arrays,Selection Sort,任务是: 完成编写函数indexOfMinimum,该函数接受一个数组和一个数字startIndex,并返回索引startIndex或更大时出现的最小值的索引。如果此最小值在此范围内出现多次,则返回此范围内最左侧出现的索引 这是我完成它的尝试 var indexOfMinimum = function(array, startIndex) { // Set initial values for minValue and minIndex, // based on the left

任务是:

完成编写函数
indexOfMinimum
,该函数接受一个数组和一个数字
startIndex
,并返回索引
startIndex
或更大时出现的最小值的索引。如果此最小值在此范围内出现多次,则返回此范围内最左侧出现的索引

这是我完成它的尝试

var indexOfMinimum = function(array, startIndex) {
    // Set initial values for minValue and minIndex,
    // based on the leftmost entry in the subarray:  
    var minValue = array[startIndex];
    var minIndex = startIndex;
    for (var i = minIndex + 1; i < array.length; i++) {
        if (array[i] < array[startIndex]) {
            minIndex = i;
            minValue = array[i];
        }
    }

    // Loop over items starting with startIndex, 
    // updating minValue and minIndex as needed:

    return minIndex;
};

var array = [18, 6, 66, 44, 9, 22, 14];
var index = indexOfMinimum(array, 2);

//  For the test array [18, 6, 66, 44, 9, 22, 14], 
//  the value 9 is the smallest of [..66, 44, 9, 22, 14]
//  Since 9 is at index 4 in the original array, 
//  "index" has value 4
println("The index of the minimum value of the subarray starting at index 2 is " + index + ".");
Program.assertEqual(index, 4);
var indexOfMinimum=函数(数组,startIndex){
//设置minValue和minIndex的初始值,
//基于子阵列中最左侧的条目:
var minValue=数组[startIndex];
var minIndex=startIndex;
对于(var i=minIndex+1;i
最后的断言失败了。根据我的逻辑,它返回4个索引,但我认为它工作不正常。为什么不呢?

比较

if(array[i]<array[startIndex])

“插入语句”?那是哪句话?Program.assertEqual(索引,4);到目前为止,最好的办法是使用内置在浏览器或IDE中的调试器来找出这样的东西不起作用的原因。在函数的第一条语句上设置断点,运行代码,调试器将在该断点处停止。然后,你可以一步一步地观察你的逻辑,并检查你的变量。使用调试器不是一项高级技能;这基本上是你在成功地写下“你好,世界”之后应该学会的第一件事。快乐编码!我不知道如何使用调试器it@MuhammadHamza:搜索会发现很多有用的信息。对于Chrome的调试器:
if(array[i]<minValue)