DEV Community

Discussion on: Daily Challenge #253 - Sort Sentences Pseudo-alphabetically

Collapse
 
raiman264 profile image
Braulio Ruiz

JS

function sort(sentence){
  const wordReg = /\w+/;
  const isCapitalized = /^[A-Z]/;

  const words = sentence
    .split(' ')
    .map(w => wordReg.exec(w)[0])
    .sort((a, b) => {
      const aCapital = isCapitalized.test(a);
      const bCapital = isCapitalized.test(b);
      if(aCapital !== bCapital) {
        return aCapital ? 1 : -1;
      }

      return a.localeCompare(b) * (aCapital ? -1 : 1);
    })

  return words.join(' ');
}