JSFiddle - React, Tailwind, and code Playground
by Fareez Ahmed
JavaScript
var commonCharacters = function (string1, string2) {
//need it?
var otherStrings = Array.prototype.slice.call(arguments, 1);
var common = otherStrings.reduce(function (obj, string) {
obj = intersection(obj, makeObject(string));
return obj;
}, makeObject(string1));
return string1.split('').reduce(function (result, char) {
if (common[char]) {
result += char;
common[char] = false;
}
return result;
}, '');
};
var makeObject = function (string) {
return string.split('').reduce(function (obj, character) {
obj[character] = true;
return obj;
}, {});
};
var intersection = function (set1, set2) {
return Object.keys(set1).reduce(function (out, val) {
if (val in set2) {
out[val] = true;
}
return out;
}, {});
};
console.log(commonCharacters('acexivou', 'aegihobu'));
// Returns: 'aeiou'