javascript - 从文本框中收集数字,对它们进行排序,然后按数字将它们放回去?

标签 javascript html sorting debugging

这是我的代码。我在文本框中随机输入数字。

<html>
<body>

<p>
    txt1: <input type = "text" id = "number1" value = ""><br>
    txt2: <input type = "text" id = "number2" value = ""><br>
    txt3: <input type = "text" id = "number3" value = ""><br>
    txt4: <input type = "text" id = "number4" value = ""><br>
    txt5: <input type = "text" id = "number5" value = ""><br>
</p>

<script>
    function randomNumbers() {
        var a = Math.floor((Math.random() * 10) + 1);
        var b = Math.floor((Math.random() * 10) + 1);
        var c = Math.floor((Math.random() * 10) + 1);
        var d = Math.floor((Math.random() * 10) + 1);
        var e = Math.floor((Math.random() * 10) + 1);
        document.getElementById("number1").value = a;
        document.getElementById("number2").value = b;
        document.getElementById("number3").value = c;
        document.getElementById("number4").value = d;
        document.getElementById("number5").value = e;
    }

</script>

<button 
    onclick = "randomNumbers()">rand_button
</button>

<script>
    function sort(a,b){
        return(a-b)
    }
    function sortNumbers(){
        var v = document.getElementById("number1").value;
        var w = document.getElementById("number2").value;
        var x = document.getElementById("number3").value;
        var y = document.getElementById("number4").value;
        var z = document.getElementById("number5").value;
        var numbersArray = new array["v", "w", "x", "y", "z"];
        numbersArray.sort(sort);
        document.getElementById("number1").value = sorted_string_of_values;
        document.getElementById("number2").value = sorted_string_of_values;
        document.getElementById("number3").value = sorted_string_of_values;
        document.getElementById("number4").value = sorted_string_of_values;
        document.getElementById("number5").value = sorted_string_of_values;
    }
</script>

<button
    onclick = "sortNumbers()">sort_button
</button>

</body>
</html>

我似乎未能从文本框中收集数字。那么在排序之前如何将输入放入 am 数组中呢?

最佳答案

在您的sortNumbers()

 var numbersArray = new Array(v, w, x, y, z); // NOTICE! No box brackets and Array with Capital A
 numbersArray.sort(sort);
 document.getElementById("number1").value = numbersArray[0];
 document.getElementById("number2").value = numbersArray[1];
 document.getElementById("number3").value = numbersArray[2];
 document.getElementById("number4").value = numbersArray[3];
 document.getElementById("number5").value = numbersArray[4];

编辑:

在您的原始代码中,存在语法错误。 当您执行 varnumbersArray = new array[]; 时,会出现两个错误。

首先,在您的代码中,没有数组这样的东西。我假设您想要做的是 new Array (带有大写字母 A 的数组)

如果您要使用 new Array 语法,那么使用 new Array[] 是错误的。它会说Uncaught TypeError: Array is not a function。

所以你需要做的是,

var numberArray = new array(v, w, x, y, z); 由于您想使用 v,w,x,y 和 z 的值,因此不应有引号和他们在一起。

Check this Fiddle

关于javascript - 从文本框中收集数字,对它们进行排序,然后按数字将它们放回去?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32481880/

相关文章:

python - 有没有一种方法可以按字母顺序对字符串进行排序,即大写字母在前?

javascript - nodejs Q.all promise 函数调用自身

HTML5 拖拽文本 mask 和记录拖拽

javascript - 在 IE 的 Html 中动态创建单选按钮

html - 带有 Typo3 的前端语言菜单

java - 如何使用 Java 按字母顺序对链表进行排序?

javascript - JavaScript 中是否有处理选项(可能返回 null 的东西)的标准方法?

javascript/jquery - 倒计时器

javascript - 如何使新输入显示在新行而不是替换旧输入

c++ - 从文件高效构建排序数组