如何在javascript中计算数组中的重复值

新手上路,请多包涵

目前,我有一个这样的数组:

var uniqueCount = Array();

几个步骤后,我的数组如下所示:

uniqueCount = [a,b,c,d,d,e,a,b,c,f,g,h,h,h,e,a];

如何计算数组中有多少个 a、b、c?我想要这样的结果:

a = 3
b = 1
c = 2
d = 2

等等

原文由 detno29 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 669
2 个回答
 function count() {
 array_elements = ["a", "b", "c", "d", "e", "a", "b", "c", "f", "g", "h", "h", "h", "e", "a"];

 array_elements.sort();

 var current = null;
 var cnt = 0;
 for (var i = 0; i < array_elements.length; i++) {
 if (array_elements[i] != current) {
 if (cnt > 0) {
 document.write(current + ' comes --> ' + cnt + ' times<br>');
 }
 current = array_elements[i];
 cnt = 1;
 } else {
 cnt++;
 }
 }
 if (cnt > 0) {
 document.write(current + ' comes --> ' + cnt + ' times');
 }

 }

 count();

演示小提琴

您也可以使用高阶函数来执行操作。 看到这个答案

原文由 Vinay Pratap Singh Bhadauria 发布,翻译遵循 CC BY-SA 4.0 许可协议

const counts = {};
const sampleArray = ['a', 'a', 'b', 'c'];
sampleArray.forEach(function (x) { counts[x] = (counts[x] || 0) + 1; });
console.log(counts)

原文由 SheetJS 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题