【问题标题】:Count occurrences of each number present in array using javascript [duplicate]使用javascript计算数组中每个数字的出现次数[重复]
【发布时间】:2017-12-22 07:12:46
【问题描述】:

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

代码:

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


请帮忙!

【问题讨论】:

标签: javascript


【解决方案1】:

如果你使用一个对象,那就更容易了:

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)

【讨论】:

  • 逻辑看不懂,请解释一下。
  • @mayankbisht 逻辑的哪一部分你不明白?将其分解为各个步骤,您应该会有所启发。
猜你喜欢
  • 1970-01-01
  • 2019-09-24
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
相关资源
最近更新 更多