Javascript比较奇怪
我陷入了比较的问题。结果假设为11,因为指数11处的产品成本低于指数18处的产品成本。但不知怎的,结果是18Javascript比较奇怪,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, .
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;i console.log(“res”,索引(分数,成本));
应该是最小值=arrayCost[arrayIndex[i]]
不能是arrayCost[arrayIndex[i]]因为您必须为minimum分配一个值,以便与数组中的其他值进行比较。此外,您还没有声明变量I,因此结果很可能是未定义的……我的意思是您现在拥有的部分minimum=arrayIndex[I];
应该更改谢谢您的建议。错误确实来自于此:)