使用javascript计算数组中出现的每个数字的出现次数

时间:2017-07-17 16:40:59

标签: javascript

我正在尝试计算数组中出现的数字的出现次数 逻辑
所以我已经有一个包含数字的数组,所以我想只将唯一的数字推入另一个数组。另外我还有另一个数组,其中包含每个数字的计数

代码:

<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>


请帮忙!

1 个答案:

答案 0 :(得分:5)

如果您使用对象,则更容易:

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

所以你可以做到

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

或与地图相同:

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

count.get(2)