Sorting Comparison (v2)

Revision 2 of this benchmark created on


Setup

const newColumns = [
  '_lastMessage',
  'demandIntent.ownedByAccount.account_type_label',
  'demandIntent.ownedByBuyerType',
  'tableData.signedNda',
  'tableData.displayStatusKey',
  'tableData.demandClient',
  'demandIntent.assignedToUser.full_name',
  '_contactRating',
];

function sortColumnsA_() {
    const defaultOrder = [
        'tableData.displayStatusKey',
        'tableData.demandClient',
        'demandIntent.assignedToUser.full_name',
        '_contactRating',
        '_lastMessage',
        'demandIntent.ownedByAccount.account_type_label',
        'demandIntent.ownedByBuyerType',
        'tableData.signedNda',
    ];
    return function (a, b) {
      if (defaultOrder.indexOf(a) > defaultOrder.indexOf(b)) {
        return 1;
      } else if (defaultOrder.indexOf(a) < defaultOrder.indexOf(b)) {
        return -1;
      } else {
        return 0;
      }
    };
}
sortColumnsA = sortColumnsA_();

function sortColumnsB(newColumns) {
    const defaultOrder = [
        'tableData.displayStatusKey',
        'tableData.demandClient',
        'demandIntent.assignedToUser.full_name',
        '_contactRating',
        '_lastMessage',
        'demandIntent.ownedByAccount.account_type_label',
        'demandIntent.ownedByBuyerType',
        'tableData.signedNda',
    ];
    const output = [];
    for (var column of defaultOrder) {
        if (newColumns.includes(column)) {
            output.push(column);
        }
    }
    return output;
}

console.log(newColumns.sort(sortColumnsA));
console.log(sortColumnsB(newColumns));

Test runner

Ready to run.

Testing in
TestOps/sec
sortColumnsA
newColumns.sort(sortColumnsA);
ready
sortColumnsB
sortColumnsB(newColumns);
ready

Revisions

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