mathball
Version:
A JavaScript library for Competitive Programming
41 lines (35 loc) • 961 B
JavaScript
;
var validate = require('../validation/frequency');
/**
* Find the occurence count of a phrase
* @param {string} str
* @param {string} occurance
*/
var findStrOccurence = function findStrOccurence(str, occurance) {
var count = 0;
var flag = -1;
do {
flag = str.indexOf(occurance, flag + 1);
if (flag !== -1) {
count++;
}
} while (flag !== -1);
return count;
};
/**
* Frequency
*
* `frequency()` accepts two arguments and return the occurance of second argument in first
* @param {string|number|string[]|number[]} arg - Accepts either a String or an Array
* @param {string|number} occurence - The phrase or array item you want to find
*/
module.exports = function (arg, occurence) {
validate(arg, 'frequency');
if (arg && arg.constructor === Array) {
return arg = arg.filter(function (val) {
return val === occurence;
}).length;
} else {
return findStrOccurence(arg, occurence);
}
};