Build Word from Previous>Next Array
by Erick Petrucelli
JavaScript
function buildWordFromPreviousNext(arr) {
let r = '';
for (let el of arr) {
const [prev, next] = el.split('>');
if (!r.includes(prev) && !r.includes(next)) {
r += prev + next;
} else if (!r.includes(prev)) {
const i = r.indexOf(prev);
const move = r.substr(i - 1, 2);
debugger
r = r.replace(move, '');
const remaining = r.substr(r.indexOf(next));
r = move + remaining;
} else {
const i = r.indexOf(prev);
const move = r.substr(i - 1, 2);
debugger
r = r.replace(move, '');
const remaining = r.substr(r.indexOf(next));
r = move + remaining;
}
}
return r;
}
function log(input, expected) {
document.write(
`<pre>${input}: <b>${JSON.stringify(buildWordFromPreviousNext(input))}</b> <small>// ${expected}</small></pre>`,
)
}
log(['I>N', 'P>A', 'A>I', 'S>P'], 'SPAIN');
// log(['W>I', 'R>L', 'T>Z', 'Z>E', 'S>W', 'E>R', 'L>A', 'A>N', 'N>D', 'I>T'], 'SWITZERLAND');