Solution to Justify Text
Solution overview to justify text using functional programming in JavaScript.
We'll cover the following...
Final step. Justify text
In this step, use bestLineBreak
function from the previous part to justify a given string.
Press + to interact
// helper function to recursively break linesfunction justifyTextRecur(lineCostFunc, dict, width, text){let [fst, snd] = bestLineBreak(lineCostFunc,dict, width, text);if(snd.length === 0){return [text]}return [fst, ...justifyTextRecur(lineCostFunc,dict,width,snd)];}function justifyText(lineCostFunc, dict, width, text){return justifyTextRecur(lineCostFunc,dict,width, text.split(' '));}enHyp = {"creative" : ["cr","ea","ti","ve"],"controls" : ["co","nt","ro","ls"],"achieve" : ["ach","ie","ve"],"future" : ["fu","tu","re"],"present" : ["pre","se","nt"],"motivated" : ["mot","iv","at","ed"],"desire" : ["de","si","re"],"others" : ["ot","he","rs"],}const blankCost = 1.0const blankProxCost = 1.0const blankUnevenCost = 1.0const hypCost = 1.0var text1 = "He who controls the past controls the future. He who controls the present controls the past."var text2 = "A creative man is motivated by the desire to achieve, not by the desire to beat others."console.log(justifyText(lineCost, enHyp, 12, text1));
Here, recursively call the bestLineBreak
function to continuously break the line in the optimal way after splitting the string text
into our representation ...