Script Preparation code:
x
 
var demoStr = 'This is a  demo of a  long string with  multiple spaces occasionally  added throughout  it.';
function regexReplace(str) {
  return str.replace(/\s+/g, ' ');
};
function arrayReplace(str) {
  let resultArr = [];
  const strArr = str.split(' ');
  for (let i = 0; i < strArr.length; i++) {
    if (strArr[i] != '') {
      resultArr.push(strArr[i]);
    }
  }
  return resultArr.join(' ');
};
function collapseSpaces(str) {
var out = ""
str.split(" ").forEach((c) => {
if (!!c) {
out += c + " "
}
})
return out.trim()
}
Tests:
  • regexReplace

     
    regexReplace(demoStr)
  • arrayReplace

     
    arrayReplace(demoStr)
  • collapseSpaces

     
    collapseSpaces(demoStr)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    regexReplace
    arrayReplace
    collapseSpaces

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 7 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Chrome 60 on Mac OS X 10.12.6
View result in a separate tab
Test name Executions per second
regexReplace 910718.4 Ops/sec
arrayReplace 1263750.5 Ops/sec
collapseSpaces 671585.8 Ops/sec