1

I am trying to count number of occurrences of number present in array.
Logic
So I already have one array that contains numbers, so I want to push only unique numbers into another array. Also I have another array that contains Counts of each number.

CODE :

<html>
   <body>

      <script language="javascript" type="text/javascript">
         <!--
          var numbers = [ 2, 1, 2, 1, 3, 4, 2];
          var count = [];
          var newNumbers = [];

          newNumbers[0] = numbers[0];
          count[0] = 1;

          for(var i = 1 ; i < numbers.length ; i++){
              for(var j = 0 ; j < newNumbers.length ; j++){
                  if(numbers[i] == newNumbers[j]){
                      document.write("<br/>" + "Number Already Present" + " " +numbers[i]);
                  count[j] = count[j]++;

                  }else{
                      newNumbers.push(numbers[i]);
                  }
              }
          }
           for(var j = 0 ; j < newNumbers.length ; j++){
               document.write(newNumbers[j]);
           }
         //-->
      </script>

   </body>
</html>


Please help !

mayank bisht
  • 618
  • 3
  • 14
  • 43

1 Answers1

8

If you use an object, its more easy:

var count = {};
numbers.forEach(number => count[number] = (count[number] || 0) +1);

So you can do

count[2]; //3 <= 2 appears 3/times

Or the same with a Map:

var count = new Map();
numbers.forEach(number => count.set(count.get(number) + 1));

count.get(2)
Jonas Wilms
  • 132,000
  • 20
  • 149
  • 151