JSFiddle - React, Tailwind, and code Playground
JavaScript
function removeLessSpecific(ary) {
return ary.filter(function(x) {
return ary.filter(function(y) {
return y.indexOf(x) >= 0;
}).length == 1;
});
}
z = removeLessSpecific(["american football","english","british english","football","german"])
console.log(z) // ["american football","british english","german"]
var keywords = ["Anglo-Saxon English","American English","British English","Canadian English","Fast British English","Austrian German","American Football","British English","Fast British English","Blue Jeep","Hot Summer","Mild Summer","Hot Brazilian Summer"];
var terms = ["english","english","english","english","english","german","football","british english","british english","jeep","summer","summer","summer"];
mapping = {}
keywords.forEach(function(kw, i) {
mapping[kw] = (mapping[kw] || []);
mapping[kw].push(terms[i]);
})
console.log(mapping)
newTerms = [], newKw = []
Object.keys(mapping).forEach(function(term) {
var kwords = mapping[term];
removeLessSpecific(kwords).forEach(function(kw) {
newTerms.push(term);
newKw.push(kw);
})
})
console.log(newTerms)
console.log(newKw)