【问题标题】:Why does the comparision between two positions in an array is wrong if one position value's isn't 1?如果一个位置值不是 1,为什么数组中两个位置之间的比较是错误的?
【发布时间】:2021-04-03 21:06:30
【问题描述】:

我开始学习 Javascript,我正在开发一个简单的代码来提醒你哪个数字更大,但我不知道为什么位置 0 和 1 之间的比较总是等于位置 0如果它的值不是 1 则更大,例如,如果位置 0 = 5 且位置 1 = 10,则结果是位置 0 是更大的,但如果位置 0 = 1 且位置 1 = 大于 1 的任何值结果是位置 1 是较大的位置。我不知道为什么它只发生在位置 0 和 1 之间的比较而不是 1 和 2 之间的比较。

var maths = document.getElementById('nMaths');
var language = document.getElementById('nLanguage');
var history = document.getElementById('nHistory');
var numNotes = [maths.value,language.value,history.value];
var aux;
var biggest;
for(var i = 0; i < 3; i++){
    if (numNotes[i] < numNotes[i+1]){
        aux = numNotes[i];
        numNotes[i] = numNotes[i+1];
        numNotes[i+1] = aux;
    }
}
for(var i = 0; i < 3; i++){
    if (numNotes[i] < numNotes[i+1]){
        aux = numNotas[i];
        numNotes[i] = numNotes[i+1];
        numNotes[i+1] = aux;
     }
}
alert(numNotes[0]);
alert(numNotes[1]);
alert(numNotes[2]);
biggest = "The biggest note is " + numNotes[0];
alert(biggest);

【问题讨论】:

  • 您需要将values 解析为使用parseInt。默认情况下,从dom elements 获得的valuesstring 类型。
  • 我需要在哪里解析值?我尝试在这里解析它们: var numNotes = [parseInt(maths),parseInt(language),parseInt(history)];但是当我尝试查看这个变量的值是什么时,它说[object HTMLInputElement],我应该在哪里解析变量?谢谢你的回答。
  • 您需要解析这些值。例如:parseInt(maths.value)
  • 就是这样!非常感谢!!!

标签: javascript html arrays comparison cycle


【解决方案1】:

你有一个错字,就行了

aux = numNotas[i];

应该是

aux = numNotes[i]; //changed 'a' for an 'e'

【讨论】:

  • 不是因为这个,我翻译了代码,因为它是用西班牙语写的,忘了把a改成e,哈哈。我刚刚编辑了它。无论如何谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
相关资源
最近更新 更多