Consonant Initial and Final Blends Extractor
For Syllable Generator
by skibulk
HTML
<h1>Initial Blends</h1>
<div id="initialBlends"></div>
<h1>Final Blends</h1>
<div id="finalBlends"></div>
JavaScript
console.clear();
var input = `a;a
a;back
a;ban;don
a;ban;don;ment
a;ban;doned
a;bat;ed
a;bate
a;bate;ment
a;bet
a;bi;ot;ic
a;bid;ing
a;bide
a;bil;i;ty
a;blaze`.replace(/[aeiou]+/g, "_").split(/[\r\n]+/);
// console.log(input);
var initialBlends = [];
var finalBlends = [];
var i, j, ib, fb;
for(i=0; i<input.length; i++){
var ib = [...input[i].matchAll(/([a-z][a-z]+)_/g)];
for(j=0; j<ib.length; j++){
initialBlends.push(ib[j][1]);
}
var fb = [...input[i].matchAll(/_([a-z][a-z]+)/g)];
for(j=0; j<fb.length; j++){
finalBlends.push(fb[j][1]);
}
}
console.log(initialBlends, finalBlends);
// Remove Duplicates and Sort
initialBlends = highFrequency(initialBlends, 2);
finalBlends = highFrequency(finalBlends, 2);
function highFrequency(arr, minimum){
var freq = {};
arr.forEach(function (x) { freq[x] = (freq[x] || 0) + 1; });
var highFreq = [];
for(var prop in freq){
//console.log(prop, freq[prop]);
if(freq[prop] >= minimum){
highFreq.push(prop);
}
}
return highFreq;
}
// console.log(initialBlends, finalBlends);
document.getElementById("initialBlends").innerHTML = initialBlends.join("<br>\r\n");
document.getElementById("finalBlends").innerHTML = finalBlends.join("<br>\r\n");