@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(' ')
}
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
@n1ksON
Интерн
Как вариант:
string.split(' ')
  .sort((a, b) => parseInt(a.match(/\d+/)) - parseInt(b.match(/\d+/)))
  .join(' ');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы