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');