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(s) {
let result = '';
 for (let i = 0; i < s.length; i++) {
    const c = s.charAt(i);
   result += c;
    if (c === ' ') {
    while (i < s.length - 1 && s.charAt(i + 1) === ' ') {
        i++;
     }
   }
 }
 return result;
}
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 842735.9 Ops/sec
arrayReplace 1242272.8 Ops/sec
collapseSpaces 406133.4 Ops/sec