数组元素未在Javascript中显示

时间:2015-11-24 23:21:00

标签: javascript arrays

我是Javascript的新手。下面是一个简单的程序,我试图显示我创建的数组中的元素。这是行不通的。谁能告诉我我做错了什么?

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>Javascript Excercises - Functions</title>
    <script>            
        function findPrimeFactors(){
            var primefacts = [];
            var primefacs;
            var unum = prompt("Please enter a positive number");
            var i = 2;
            var num = parseInt(unum);

            if (num > 0) {             


                while (num >= i){
                    if (num % i == 0){
                        primefacts.push(i);
                        num = num / i;

                        console.log("Prime factor: " + i + " New num: " + num + " Array length: " + primefacts.length + " Last array element: " + primefacts[primefacts.length-1]); 
                    }
                    else {
                        i += 1;
                    }

                };


                if (primefacts.length = 0) {
                    document.write("No prime factors other than 1 for this number.");
                }
                else {
                    primefacs = primefacts.join();
                    console.log("Prime factors: " + primefacts[0] + ", " + primefacts[1] + ", " + primefacts[2]);
                    document.write("The prime factor for " + unum + " are : " + primefacs);
                }

            }
        }
    </script>
</head>
<body>        
    <button  onclick="findPrimeFactors()">Click to proceed</button>
</body>

1 个答案:

答案 0 :(得分:1)

替换: -

if (primefacts.length = 0) {

if (primefacts.length == 0) {

您将length设置为0而不是比较。

function findPrimeFactors() {
  var primefacts = [];
  var primefacs;
  var unum = prompt("Please enter a positive number");
  var i = 2;
  var num = parseInt(unum);

  if (num > 0) {


    while (num >= i) {
      if (num % i == 0) {
        primefacts.push(i);
        num = num / i;

        console.log("Prime factor: " + i + " New num: " + num + " Array length: " + primefacts.length + " Last array element: " + primefacts[primefacts.length - 1]);
      } else {
        i += 1;
      }

    };


    if (primefacts.length == 0) {
      document.write("No prime factors other than 1 for this number.");
    } else {
      primefacs = primefacts.join();
      console.log("Prime factors: " + primefacts[0] + ", " + primefacts[1] + ", " + primefacts[2]);
      document.write("The prime factor for " + unum + " are : " + primefacs);
    }

  }
}
<button onclick="findPrimeFactors()">Click to proceed</button>