[Solved] Array’s elements in JavaScript [duplicate]


This is an approach using Array.reduce()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

  • First I determine for each unique value in the array how many times it does occur, by returning an object like {"1": 3, "2": 3, "3": 1}
  • Then I determine which are the values occurred most of the times
    in the array, by returning an object like {"count": 3, "values": ["1", "2"]}
const data = ["1", "2", "1", "1", "2", "2", "3"];

//returns the number of time each unique value occurs in the array
const counts = data.reduce( (counts, item) => {
  if(item in counts)
    counts[item] += 1;
  else
    counts[item] = 1;
  return counts;
}, {});

console.log(counts);
/*
{
  "1": 3,
  "2": 3,
  "3": 1
}
*/

//returns which values and how many times occur the most 
const max = Object.entries(counts)
  .reduce((max, [value, count])=> {
      if(count < max.count)
        return max;
      if(count == max.count){
        max.values.push(value);
        return max;
      }
      return {count: count, values: [value]};
    },{count: 0, values: []});

console.log(max);
/*
{
  "count": 3,
  "values": [
    "1",
    "2"
  ]
}
*/

0

solved Array’s elements in JavaScript [duplicate]