Replace vs Conditional Replace (v2)

Revision 2 of this benchmark created on


Setup

var removableSpacePattern = /(\r\n|\n\r|\n|\r|\t|\s{2,})/gm;
    var removableSpacePattern2 = /(\r\n|\n\r|\n|\r)/gm;
    var obj = new Array();
    obj.push("string space");
    obj.push("garbage string, nothing important here.");
    obj.push("string \nnl");
    obj.push("garbage string, nothing important here.");
    obj.push("string \rcr");
    obj.push("garbage string, nothing important here.");
    obj.push("string \n\rnlcr");
    obj.push("garbage string, nothing important here.");
    obj.push("string \r\ncrnl");
    obj.push("garbage string, nothing important here.");
    obj.push("string \ttab");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 1 space");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 2 \nnl");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 3 space");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 4 \rcr");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 5 space");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 6 \n\rnlcr");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 7 space");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 8 \r\ncrnl");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 9 \ttab");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 1 space string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 2 \nnl string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 3 space string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 4 \rcr string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 5 space string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 6 \n\rnlcr string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 7 space string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 8 \r\ncrnl string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");
    obj.push("string string string string string string string string string string string string string 9 \ttab string string string string string string string string string string string string string");
    obj.push("garbage string, nothing important here.");

Test runner

Ready to run.

Testing in
TestOps/sec
Replace
for (var i = 0, len = obj.length; i < len; i++) {
  obj[i] = obj[i].replace(removableSpacePattern, " ");
}
ready
Conditional Replace (indexOf)
for (var i = 0, len = obj.length; i < len; i++) {
  if (obj[i].indexOf("\n") != -1 || obj[i].indexOf("\r") != -1 || obj[i].indexOf("\t") != -1 || obj[i].indexOf("  ") != -1) {
    obj[i] = obj[i].replace(removableSpacePattern, " ");
  }
}
ready
Conditional Replace (match)
for (var i = 0, len = obj.length; i < len; i++) {
  if (obj[i].match(removableSpacePattern)) {
    obj[i] = obj[i].replace(removableSpacePattern, " ");
  }
}
ready
Conditional Replace (indexOf - linebreaks)
for (var i = 0, len = obj.length; i < len; i++) {
  if (obj[i].indexOf("\n") != -1 || obj[i].indexOf("\r") != -1) {
    obj[i] = obj[i].replace(removableSpacePattern2, " ");
  }
}
ready

Revisions

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