Home > Mobile >  How to get an object with matches count based on two arrays
How to get an object with matches count based on two arrays

Time:09-22

how to get object based on two arrays, where the values in the first are unique, and in the second any, where the key will be a word, and the value is the number of matches of this word?
For example:
let uniqueArray = ['green', 'blue', 'red'];
let anyArray = ['red', 'green', 'red', 'blue, 'yellow', 'green', 'pink', 'red'];
We get:
{'green': 2, 'blue': 1, 'red': 3}

CodePudding user response:

So you want to count occurrences in anyArray of entries in uniqueArray.

You can do this using a reduce:

let uniqueArray = ['green', 'blue', 'red'];
let anyArray = ['red', 'green', 'red', 'blue', 'yellow', 'green', 'pink', 'red'];

const result = uniqueArray.reduce((data, key) => {
  data[key] = anyArray.filter(x => x === key).length;
  return data;
}, {});

console.log(result);

  • Related