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);