Script Preparation code:
x
 
var TestString = '+'.repeat(200) + '='.repeat(20000) + '+'.repeat(200);
var TestString2 = '-'.repeat(200) + '='.repeat(20000) + '+'.repeat(200);
var TestString3 = 'a'.repeat(200) + 'b'.repeat(200) + 'c'.repeat(200) + 'd'.repeat(200) + 'e'.repeat(200) + 'f'.repeat(200) + 'g'.repeat(200) + 'h'.repeat(200) + 'i'.repeat(200) + 'j'.repeat(200) + 'k'.repeat(200) + 'l'.repeat(200);
function trimAnySet(str, chars) {
    var start = 0, 
        end = str.length;
    while(start < end && chars.has(str[start]))
        ++start;
    while(end > start && chars.has(str[end - 1]))
        --end;
    return (start > 0 || end < str.length) ? str.substring(start, end) : str;
}
function trimAny(str, chars) {
    var start = 0, 
        end = str.length;
    while(start < end && chars.indexOf(str[start]) >= 0)
        ++start;
    while(end > start && chars.indexOf(str[end - 1]) >= 0)
        --end;
    return (start > 0 || end < str.length) ? str.substring(start, end) : str;
}
Tests:
  • Array single

     
    trimAny(TestString, ['+']);
  • Set single

     
    trimAnySet(TestString, new Set(['+']));
  • Array double

     
    trimAny(TestString2, ['+', '-']);
  • Set double

     
    trimAnySet(TestString2, new Set(['+', '-']));
  • Array 5

     
    trimAny(TestString3, ['a', 'b', 'c', 'd', 'e']);
  • Set 5

     
    trimAnySet(TestString3, new Set(['a', 'b', 'c', 'd', 'e']));
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array single
    Set single
    Array double
    Set double
    Array 5
    Set 5

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0
Firefox 92 on Windows
View result in a separate tab
Test name Executions per second
Array single 132651.1 Ops/sec
Set single 65385.8 Ops/sec
Array double 126659.6 Ops/sec
Set double 64518.2 Ops/sec
Array 5 75613.6 Ops/sec
Set 5 32849.0 Ops/sec