Как найти 3 самых длинных слова на js

651
07 сентября 2017, 20:14

Задача такая: спросить у пользователя текст произвольной длины; найти во введённом тексте три самых длинных слова. Так вот текст запросил, слова на массив разбил, лишние запятые убрал, даже создал новый массив с длительностями слов. По сути задача: как из массива чисел найти 3 самых больших.

var text = prompt('Введите любой произвольный текст', 'Футбол это игра, целью которой является забить мяч в ворота противника');
        var textArr = text.split(' ');
        for (i = 0; i < textArr.length; i++) {
            textArr[i] = textArr[i].replace(',', '');
        };
        var textArrLength = [];
        for (i = 0; i < textArr.length; i++) {
            textArrLength[i] = textArr[i].length;
        };
Answer 1

Можно с помощью кастомной функции сортировки масива, отсортировать по длине и взять первые 3 :

var text = 'Футбол это игра, целью которой является забить мяч в ворота противника'; 
var textArr = text.split(' '); 
 
var newArr = textArr.sort(compare); 
 
console.log('Три самые длинные слова : ' + newArr[0] + ' ' + newArr[1] + ' ' + newArr[2]); 
 
function compare(a, b) { 
  if (a.length > b.length) { 
    return -1; 
  } 
  if (a.length < b.length) { 
    return 1; 
  } 
  return 0; 
}

О сортировке массивов почитать можно тут

READ ALSO
Таймер показывает Nan в браузере Safari

Таймер показывает Nan в браузере Safari

Есть такой скриптВ браузере сафари показывает Nan

312
Как вернуть промисс?

Как вернуть промисс?

ЗдравствуйтеМожно такой небольшой вопрос

300
Как добавлять компоненты vue динамически?

Как добавлять компоненты vue динамически?

На сайте есть основной js, и js для конкретной страницы, который уже потом берётся с сервераВ основном js я создаю экземпляр vue, можно ли после...

311
Javascript: return функции из промиса [дубликат]

Javascript: return функции из промиса [дубликат]

На данный вопрос уже ответили:

292