javascript - 拥有 N(数组中出现的次数)和一个数组,如何获取数组中出现 N 次的元素?

标签 javascript arrays list data-structures

例如N = 2 且 arr = [2, 2, 3, 0, 1, 5, 5]

如何从数组中获取 2 和 5?

另一个例子是 N = 1 arr = [20,37,20,21]

我应该得到 37 和 27。

最佳答案

您可以迭代数组以创建一个包含每个值的计数的字典,然后找到计数 = N 的位置

var arr =  [2, 2, 3, 0, 1, 5, 5];
var N = 2;
var cnt = {};

for (var i = 0; i < arr.length; i++) {
  var num = arr[i];
  cnt[num] = cnt[num] ? cnt[num] + 1 : 1;
}


for(var it in cnt) {
   if(cnt[it] == N) {
       console.log(it);
   }
}

关于javascript - 拥有 N(数组中出现的次数)和一个数组,如何获取数组中出现 N 次的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217980/

相关文章:

javascript - Chrome 分析器上的 "Unsupported non-primitive compare"

python - python中列表的减法,优化速度

python - 在列表python中相乘

python - 无论我在 if 语句下写什么,语法错误

javascript - React Native 中的数字总和

javascript - 无法在 Vue.js 中动态创建 ref

javascript - fancybox 中的全尺寸图像?

javascript - 增加JS数组中的Object键

java - 使用 while 循环与数组中的值进行比较

java - 全局序列比对动态规划寻找矩阵中的最小值