JSFiddle - React, Tailwind, and code Playground
by Abdul Ahmad
JavaScript
function compare(a, b) {
const partsA = getParts(a);
const partsB = getParts(b);
if (partsA[0] > partsB[0]) return a;
else if (partsA[0] < partsB[0]) return b;
if (partsA[1] > partsB[1]) return a;
else if (partsA[1] < partsB[1]) return b;
if (partsA[2] > partsB[2]) return a;
else if (partsA[2] < partsB[2]) return b;
else if (partsA[2] === partsB[2]) return b;
}
function getParts(string) {
const numOfClasses = string.split('.').length - 1;
const numOfIds = string.split('#').length - 1;
let numOfElements = 0;
if (!numOfClasses && !numOfIds) numOfElements = string.split(' ');
return [numOfIds, numOfClasses, numOfElements];
}
const result = compare('element #two', 'element .two');
console.log(result);