Longest word in string

Benchmark created on


Setup

const string = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."

Test runner

Ready to run.

Testing in
TestOps/sec
split and loop
let words = string.split(" "), length = 0, index = 0;

for (let i = 0, end = words.length; i < end; ++i) {
  if (length < words[i].length){
    length = words[i].length;
    index = i; 
  }
}

let longest = words[index];
ready
split and reduce
return string.split(" ").reduce((prev, next) => prev.length > next.length ? prev : next);
ready
loop with bracket access
let start = 0, end = 0, last = -1;

for (let i = 0, length = string.length; i < length; ++i) {
  if (string[i] == " ") {
    if (i - last > end - start) {
      start = last + 1;
      end = i;
    }
    last = i;
  }
}

if (string.length - last > end - start) {
  start = last + 1;
  end = string.length;
}

let longest = string.substring(start, end);
ready
loop with indexOf
let length = 0, start = 0, last, next = -1;

do {
  last = next + 1;
  next = string.indexOf(" ", last);
  
  if (next - last > length) {
    length = next - last;
    start = last;
  }
} while (next > -1)

if (string.length - last > length) {
  length = string.length - last;
  start = last;
}

let longest = string.substring(start, start + length);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.