Answer the question
In order to leave comments, you need to log in
How to count the number of repeating elements in an array?
let arr = [1,3,3,4,5,5,5];
function count(arr){
let cnt = 1;
let map = new Map();
for(let i = 0; i< arr.length; i++){
for(let j = 0; j< arr.length; j++){
if(arr[i] == arr[j]){
map.set(arr[i],cnt++);
}
}
} return map;
}
console.log(count(arr)); // map должен быть таким {1 => 1, 3 => 2, 4 => 1, 5 => 3} ,
// но выдает {1 => 1, 3 => 5, 4 => 6, 5 => 15}
// Как реализовать такое? Если можно объясните что именно делать с этим кодом(и укажите ошибки в
// коде) чтобы он стал работать корректно.
Answer the question
In order to leave comments, you need to log in
function count(arr){
const map = new Map();
arr.forEach(i => map.set(i, (map.get(i) || 0) + 1))
return map;
}
I do something like this:
let arr = [1,3,3,4,5,5,5];
obj = new Object();
arr.forEach((el)=>(obj.hasOwnProperty(el)) ? obj[el]++ : obj[el] = 1);
console.log(obj); // Object { 1: 1, 3: 2, 4: 1, 5: 3 }
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question