JS的新手,这里有问题,代码要求用户输入任意数量的数字-1来结束,找到并显示最大和最小的数字;它的工作除了它显示最小但最大但最大的显示器 细??
{{1}}
答案 0 :(得分:0)
您的代码存在的问题是numInputs
仅解析您输入的第一个数字。所以如果你把字符串" 1 2 3 4 5 -1",numInputs
得到值1.
以下是修复问题的代码段:
var largestNum, smallestNum;
var numInput = parseInt(prompt("Please enter the next number (-1 to exit)"));
if (numInput != -1) {
largestNum = numInput;
smallestNum = numInput;
}
while (numInput != -1) {
if (numInput > largestNum) {
largestNum = numInput;
} else if (numInput < smallestNum) {
smallestNum = numInput;
}
numInput = parseInt(prompt("Please enter the next number (-1 to exit)"));
}
alert("Smallest number is " + smallestNum + ", largest number is " + largestNum);
正如您所看到的,我实时更新了最小和最大的数字,而不是在我得到所有输入之后。
此外,为简单起见,我将第一个数字设置为最小数字和最大数字(不使用固定值为0和9999,这可能是错误的)。
最后,我为每个号码单独提示,因此您无法将它们全部输入。为此,您需要split
字符串并存储在数组中,并迭代数组元素。
答案 1 :(得分:0)
var a = [],
value;
value = parseInt(prompt("Please enter numbers seperated by a space end with - 1 "));
while (value !== -1) {
a.push(value);
value = parseInt(prompt("Please enter numbers seperated by a space end with - 1 "));
}
a.sort();
console.log(a);
alert("The largest number entered was " + a[a.length-1]);
alert("The smallest number entered was " + a[0]);
修改强> 如果要对大于9的数字进行排序,请使用:
a.sort(function(a,b){ return a - b });
答案 2 :(得分:0)
如何在这里重构代码呢?我们移除了@XmlElement
@XmlJavaTypeAdapter(Adapter.class)
private Map<String, List<Parameter>> parameterMap = new HashMap<>();
,因为它起作用,并将输入的数字parseInt
用空格形成一个数组split
然后只有sorting the array
和poping
来自它的数字,它们分别只删除了最后一个和第一个数字。
这是example。
代码:
shifting
答案 3 :(得分:0)
你的代码没有多大意义。
numInputs 将是一个字符串(数字用空格分隔),你需要解析它介绍一个数组,如:
numInputs = prompt("Please enter numbers...")).split(" ");
然后你应该遍历数组并检查最大和最小数字,例如:
var smallestNum = numInputs[0];
var largestNum = numInputs[0];
for(var i=0; i<numInputs.length; i++) {
if (smallestNum > numInputs[i]) {
smallestNum = numInputs[i];
} else if (largestNum < numInputs[i]) {
largestNum = numInputs[i];
}
}