2017-06-13 43 views
-1

我试图拧一个脚本,输出一个数组并根据用户输入计算数组中元素的数量。JavaScript计数函数

<script> 
    // Function searches a given array and counts the number of times an element appears in the array. 
    function countOccurences(numArray, num) // function 
     {       //parameters 
      var count = 0; 

      if(array[i] == 2) 
      count++; 
     } 
</script> 
</head> 
<body> 
<script> 
var num = [2, 6, 33, 1, 77, 2, 98]; <!-- array --> 
document.write("<p>"+nums.toString()+"</p>"); <!-- fill the array--> 
var count = parseFloat(prompt("Please enter number to search for", "")); <!--ask for the numer to search --> 
// linear search 
var p = countOccurences(nums, key) ; 

document.write("<p>Value "+p+" was not found in array </p>"); //output the count 

</script> 

</body> 
</html> 
+2

这不是Java(而且你总是忘记语言标记)。你也没有问过一个实际的问题或解释这个代码有什么问题 – UnholySheep

+0

这是什么问题?附: '' - JavaScript的错误评论 – FieryCat

回答

0

几件事情。首先,你的函数实际上并不循环数组,所以它实际上无法搜索目标值。如果你想从函数中获得一个值,你需要返回函数内部的值

<script> 
    function countOccurences(numArray, num) 
     {       
      var count = 0; 
      for (let i = 0; i < numArray.length; i++ ){ 
       if (numArray[i] == target) count++ 
      } 
      return count 
     } 
</script> 
1

请不要忘记问一个实际的问题。假设你要让你的脚本工作,这应该会有诀窍。

function countOccurences(numsArr, target){ 
     let count = 0; 
     for (let i = 0; i < numsArr.length; i++ ){ 
      if (numsArr[i] == target) count++ 
     } 
     return count; 
    } 
    const nums = [2, 6, 33, 1, 77, 2, 98]; 
    const target = parseFloat(prompt("Please enter number to search for", "")) 
    const count = countOccurences(nums, target) // you can output count in whatever way you like.