Javascript比较奇怪

Javascript比较奇怪,javascript,Javascript,我陷入了比较的问题。结果假设为11,因为指数11处的产品成本低于指数18处的产品成本。但不知怎的,结果是18 var scores = [60, 50, 60, 58, 54, 54, 58, 50, 52, 54, 48, 69, 34, 55, 51, 52, 44, 51, 69, 64, 66, 55, 52, 61, 46, 31, 57, 52, 44, 18, 41, 53, 55, 61, 51, 44]; var costs = [.25, .27, .

我陷入了比较的问题。结果假设为11,因为指数11处的产品成本低于指数18处的产品成本。但不知怎的,结果是18

    var scores = [60, 50, 60, 58, 54, 54, 58, 50, 52, 54, 48, 69, 34, 55, 51, 52, 44, 51, 69, 64, 66, 55, 52, 61, 46, 31, 57, 52, 44, 18,
    41, 53, 55, 61, 51, 44];
    var costs = [.25, .27, .25, .25, .25, .25, .33, .31, .25, .29, .27, .22, .31, .25, .25, .33, .21, .25, .25, .25, .28, .25, .24, .22, .20, .25, .30, .25, .24, .25,
        .25, .25, .27, .25, .26, .29];
//TOTAL, HIGHEST, INDEX OF THE HIGHEST
function index(array,arrayCost){
    var maximum=Math.max(...array);
    var arrayIndex=[];
    for(var i=0;i<array.length;i++){
        if(array[i]==maximum){
            arrayIndex.push(i)
        }
    }

   var minimum=arrayCost[arrayIndex[0]];//0.22
   for(var i=0;i<arrayIndex.length;i++){
       if(arrayCost[arrayIndex[i]]<=minimum){//0.25>=0.22
           minimum=arrayIndex[i];
       }
   }
    return minimum;
}
var得分=[60,50,60,58,54,54,58,50,52,54,48,69,34,55,51,52,44,51,69,64,66,55,52,61,46,31,57,52,44,18,
41, 53, 55, 61, 51, 44];
风险价值成本=[.25、.27、.25、.25、.25、.25、.33、.31、.25、.29、.27、.22、.31、.25、.25、.33、.21、.25、.25、.25、.24、.22、.20、.30、.25、.24、.25、,
.25, .25, .27, .25, .26, .29];
//总的,最高的,最高的指数
函数索引(数组、arrayCost){
var max=Math.max(…数组);
var arrayIndex=[];

对于(var i=0;i在第二个
if
中,您使用
arrayIndex[i]
重新分配
最小值
,该值为
11
,因此在下一个循环中,最小值将为
11
,而
arrayIndex[i]
将小于
11
。 您可以创建另一个存储
索引
值的变量

函数索引(数组,arrayCost){
var max=Math.max(…数组);
var arrayIndex=[];
对于(var i=0;i
注释中显示了您的错误,但我会将其返工以使用单个循环:

var得分=[60,50,60,58,54,54,58,50,52,54,48,69,34,55,51,52,44,51,69,64,66,55,52,61,46,31,57,52,44,18,
41, 53, 55, 61, 51, 44];
风险价值成本=[.25、.27、.25、.25、.25、.25、.33、.31、.25、.29、.27、.22、.31、.25、.25、.33、.21、.25、.25、.25、.24、.22、.20、.30、.25、.24、.25、,
.25, .25, .27, .25, .26, .29];
函数索引(数组、arrayCost){
var maxScore=Math.max(…数组);
var minCostIndex=null;
对于(var i=0;iconsole.log(“res”,索引(分数,成本));
应该是
最小值=arrayCost[arrayIndex[i]]
不能是arrayCost[arrayIndex[i]]因为您必须为minimum分配一个值,以便与数组中的其他值进行比较。此外,您还没有声明变量I,因此结果很可能是未定义的……我的意思是您现在拥有的部分
minimum=arrayIndex[I];
应该更改谢谢您的建议。错误确实来自于此:)