如何制作排序数组和计数数组按钮?

时间:2015-09-30 16:40:53

标签: javascript arrays

我正在尝试创建一个代码,将产品按字母顺序排序,然后计算类的数量。我知道如何创建一个可以执行其中一个的程序,但是当我尝试将它们放在其中时它不起作用,我试图改变代码但我仍然​​无法做到找到一种工作方式,所以我一定做错了。任何帮助将非常感激。这是当前的代码:

<!DOCTYPE html>
<html>
<body>
    <p>Printer, Tablet, Router, Computer, Phone.</p>

    <p>Click the button to sort the products into Alphabetical Order.</p>

    <button onclick="myFunction()">Try it</button>

    <p id="demo"></p>

    <script>
        var products = ["Printer", "Tablet", "Router", "Computer","Phone"];
        document.getElementById("demo").innerHTML = products;

        function myFunction() {
            products.sort();
            document.getElementById("demo").innerHTML = products;
        }
    </script>

    <button onclick="myFunction()">Count the Number of Products!</button>

    <p id="demo2"></p>

    <script>
        var products = ["Printer", "Tablet", "Router", "Computer","Phone"];
        prod1=products.count();

        function myFunction() {
            products.length();
            document.getElementById("demo2").innerHTML = products;
        }
    </script>
</body>
</html>

2 个答案:

答案 0 :(得分:2)

欢迎编程!这很有趣,除非事实并非如此。但是在你解决问题后它会再次变得有趣:)

您的代码存在问题,即使您在两个<script>标记内分隔代码,浏览器仍会将其作为单个程序读取。在你的情况下,请注意它将使你有两个具有相同名称和两个'Products'数组的函数,第二个将覆盖第一个。

答案 1 :(得分:1)

您的代码存在许多问题。第一个是脚本应该在一个单独的脚本文件中。您还创建了两个具有相同名称的函数。此功能也存在问题

function myFunction() {
    products.length();
    document.getElementById("demo2").innerHTML = products;
}

首先length()不是JavaScript函数,它应该是length。其次,您不是将数组的长度存储在变量中。您正在存储产品阵列。

array.count()也不是一个功能。您还在两个脚本块中重复使用相同的代码。将它们放在外部脚本文件中,或仅使用一个脚本块。并更改您的功能名称。

这是我的解决方案

var products = ["Printer", "Tablet", "Router", "Computer","Phone"];
document.getElementById("demo").innerHTML = products;

var buttonOne = document.getElementById("buttonOne");
var buttonTwo = document.getElementById("buttonTwo");

buttonOne.addEventListener("click", function() {
    products = products.sort();
    document.getElementById("demo").innerHTML = products;
});

buttonTwo.addEventListener("click", function() {
    length = products.length;
    document.getElementById("demo2").innerHTML = length;
});

http://jsfiddle.net/9r08ucbu/1/