let longText =
  'Four score and seven years ago our fathers brought forth' +
  ' on this continent a new nation, conceived in liberty, and' +
  ' dedicated to the proposition that all men are created' +
  ' equal.' +
  ' Now we are engaged in a great civil war, testing whether' +
  ' that nation, or any nation so conceived and so dedicated,' +
  ' can long endure. We are met on a great battlefield of that' +
  ' war. We have come to dedicate a portion of that field, as' +
  ' a final resting place for those who here gave their lives' +
  ' that that nation might live. It is altogether fitting and' +
  ' proper that we should do this.' +
  ' But, in a larger sense, we can not dedicate, we can not' +
  ' consecrate, we can not hallow this ground. The brave' +
  ' men, living and dead, who struggled here, have' +
  ' consecrated it, far above our poor power to add or' +
  ' detract. The world will little note, nor long remember' +
  ' what we say here, but it can never forget what they' +
  ' did here. It is for us the living, rather, to be dedicated' +
  ' here to the unfinished work which they who fought' +
  ' here have thus far so nobly advanced. It is rather for' +
  ' us to be here dedicated to the great task remaining' +
  ' before us -- that from these honored dead we take' +
  ' increased devotion to that cause for which they gave' +
  ' the last full measure of devotion -- that we here highly' +
  ' resolve that these dead shall not have died in vain' +
  ' -- that this nation, under God, shall have a new birth' +
  ' of freedom -- and that government of the people, by' +
  ' the people, for the people, shall not perish from the' +
  ' earth.';

function splitSentences(paragraph) {
  const sentenceArray = [];
  let startIndex = 0;

  paragraph.split('').forEach((character, index) => {
    if (character.match(/[.?!]/)) {
      sentenceArray.push(paragraph.slice(startIndex, index + 1));

      // When a sentence ends, there's an ending character and a space prior to the next sentence starting.
      startIndex = index + 2;
    }
  });

  return sentenceArray;
}

function getSentenceLength(sentence) {
  const filteredWords = sentence.split(/\s+/).filter(word => word !== '');
  return filteredWords.length;
}

function longestSentence(text) {
  let sortedSentencesArray = splitSentences(text).sort((a, b) => {
    return getSentenceLength(b) - getSentenceLength(a);
  });

  console.log(sortedSentencesArray[0]);
  console.log();
  console.log(
    `The longest sentence has ${getSentenceLength(
      sortedSentencesArray[0]
    )} words.`
  );
}

longestSentence(longText);
longestSentence('     I yam what I yam!');
// The longest sentence has 9 words.
// (should be 5 words)

longestSentence('Four score and seven years ago.     I yam what I yam!');
// The longest sentence has 9 words.
// (should be 6 words)

// console output
// It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth.

// The longest sentence has 86 words.
