@Evgeii

Как внутри строки отсортировать слова в зависимости от содержащихся в них цифр?

Был пару дней назад на собеседовании и там дали задачку в которой нужно написать функцию которая принимает какую либо строку вида 'd4o dru7nken sh2all w5ith s8ailor wha1t 3we a6' где в каждом слове находится цифра и на выходе мы должны получить строку отсортированную в порядке увеличения чисел в этих словах'wha1t sh2all 3we d4o w5ith a6 dru7nken s8ailor '
На тот момент я только додумался до такого решения, но они сказали что оно очень глупое и любой бы разработчик умнее решил бы это в 1-2 строчками теми же регулярками.
На работу меня конечно же скорее всего не возьмут, но мне стало интересно как бы эту задачку решил более хороший разработчик чем я?

function order(word){
  let obj = new Object()
  let arr = []
  let str = words.split('').map(i => Number(i))
  str = str.filter(i => i <  100 && i !== 0)
  str.forEach((i,idx) => obj[i] = {'str': word.split(' ')[idx]})
  for(let value of Object.values(obj)) {
     arr.push(value.str)
  }
  return arr.join(' ')
}
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
@n1ksON
мидл
Как вариант:
string.split(' ')
  .sort((a, b) => parseInt(a.match(/\d+/)) - parseInt(b.match(/\d+/)))
  .join(' ');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы