Как найти длину самого короткого слова в строке?

143
22 ноября 2019, 11:00

Перевел строку в массив. Подскажите, почему не получается отсортировать?

function findShort(s) { 
  var arr = []; 
  arr.push(s.match(/\w+/g)); 
  arr.sort(function(a, b) { 
    return a.length - b.length; 
  }); 
  return arr[0].length 
} 
console.log(findShort("bitcoin take over the world maybe who knows perhaps")

Answer 1

Чтобы узнать информацию о самом коротком слове, не нужно сортировать массив — можно воспользоваться функцией Math.min().

var s = "bitcoin take over the world maybe who knows perhaps" 
var a = s.split(/\W+/) 
var l = a.map(e => e.length) 
var r = Math.min(...l) 
 
console.log(r)

Answer 2

Другой ответ лучше в том плане что для выяснения самого короткого слова сортировка не нужна, тут мы ищем самое короткое слово а потом уже выводим его длину:

function findShort(s){ 
 return s.split(" ").sort(function(a,b){ 
   return a.length - b.length; 
 }).shift() 
} 
console.log(findShort("bitcoin take over the world maybe who knows perhaps").length)

READ ALSO
Подключение JQuery. Не получается подключить

Подключение JQuery. Не получается подключить

Всем доброго времени суток! Подскажите, не понимаю в чем дело, пытаюсь подключить JQuery в WebStorm, вставляю ссылку на CDN, WebStorm подчеркивает, как...

125
Проксирование на базе Nuxt.js

Проксирование на базе Nuxt.js

Подскажите, пожалуйста, в чём фишка?

115
Найти углы треугольника

Найти углы треугольника

Даны длины сторон треугольника и необходимо найти углы треугольникаПри решении этой задачи я использую теорему косинусов

92