我正在尝试计算数组中出现的数字的出现次数
逻辑
所以我已经有一个包含数字的数组,所以我想只将唯一的数字推入另一个数组。另外我还有另一个数组,其中包含每个数字的计数。
代码:
<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>
请帮忙!
答案 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)