javascript - 将用户输入从低到高排序

标签 javascript

我需要将用户输入的顺序从最低到最高排序并打印到我的 p id 中。

实现排序算法对n个整数进行排序(不使用数组的sort()方法)。

在输出中打印排序数组。

<!DOCTYPE html>
<html>

<head>
<title>User Input, Sort and Find!</title>

<style>

</style>
</head>

<body>
<h2>Enter 4 numbers user!</h2>
<p id="myprint"></p>

<button onclick="userInput()">Input your Numbers!</button>
<button onclick="searchInput()">Find an inputed number in your array!       </button>
<script>
var numbers = [];

function userInput() {
for(var i = 0; i < 4; i++){
   var num = prompt("Enter a number 1 at a time, from 1-9 until prompts ask you 4 times:");
   if (isNaN(num)) {
     alert("Enter a number!");
    --i; // reset the counter for amount of numbers entered
   }
   if( !isNaN(num)) {
      if( num % 1 != 0){
         alert("Enter a whole number!")
         --i;  // reset the counter for amount of numbers entered
      }else{
         numbers.push(num);
      }
   }
}
document.getElementById("myprint").innerHTML = "Your numbers are" + numbers;
//Sort the array and print numbers in inner html
function bubbleSort(numbers) {  
    var length = numbers.length;
    for (var i = (length - 1); i >= 0; i--) {
        for (var j = (length - i); j > 0; j--) {
            if (numbers[j] < numbers[j - 1]) {
                var nmbr = numbers[j];
                numbers[j] = numbers[j - 1];
                numbers[j - 1] = nmbr;
            }
        }
    }
}
function searchInput() {

}
}
</script>

</body>
</html>

最佳答案

看起来您的代码可以工作,只是您必须实际调用 bublesort 函数,然后该函数需要返回结果。

<body>
<h2>Enter 4 numbers user!</h2>
<p id="myprint"></p>

<button onclick="userInput()">Input your Numbers!</button>
<button onclick="searchInput()">Find an inputed number in your array!       </button>
<script>
var numbers = [];

function userInput() {
for(var i = 0; i < 4; i++){
   var num = prompt("Enter a number 1 at a time, from 1-9 until prompts ask you 4 times:");
   if (isNaN(num)) {
     alert("Enter a number!");
    --i; // reset the counter for amount of numbers entered
   }
   if( !isNaN(num)) {
      if( num % 1 != 0){
         alert("Enter a whole number!")
         --i;  // reset the counter for amount of numbers entered
      }else{
         numbers.push(num);
      }
   }
}

numbers = bubbleSort(numbers);

document.getElementById("myprint").innerHTML = "Your numbers are" + numbers;
//Sort the array and print numbers in inner html
function bubbleSort(numbers) {  
    var length = numbers.length;
    for (var i = (length - 1); i >= 0; i--) {
        for (var j = (length - i); j > 0; j--) {
            if (numbers[j] < numbers[j - 1]) {
                var nmbr = numbers[j];
                numbers[j] = numbers[j - 1];
                numbers[j - 1] = nmbr;
            }
        }
    }
    return numbers;
}
function searchInput() {

}
}
</script>

</body>

这是一个fiddle that works

关于javascript - 将用户输入从低到高排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42477681/

相关文章:

使用 Babel 后,Javascript 自定义类方法无法调用同一类中的另一个方法

javascript - 如何循环 3 个 setInterval 函数,但将它们链接为 promise ,以便解决并继续?

javascript - html/JS 中其他输入的只读等价物

javascript - 你能得到调用函数的属性名吗?

javascript - 无法根据 Thymeleaf 变量执行脚本 &lt;script th :inline ="javascript">

javascript - 提交时触发事件

c# - Selenium C# - 捕获 Javascript 错误

javascript - 如何减少生产中繁重的 bootstrap css 的使用?

Javascript 对象在碰撞时粘在 div 对象上

javascript - 谷歌美化 bool 查询语言