JavaScript | Как найти самую короткую строку в массиве? — efim360.ru

JavaScript | Как найти самую короткую строку в массиве?

Мы будем писать функцию нахождения самой короткой строки в массиве по шагам.

Исходный массив для тестирования будет такой:

let arr = [1, 'Александр', 2, 'Вася', 'Гриша', 367323 ]

Шаг № 1 - Фильтрация массива на наличие строк

arr.filter(i=>i.constructor.name==='String')

 

Шаг № 2 - Проверка, что в массиве есть строки

if(arr.filter(i=>i.constructor.name==='String').length = 0){return console.log("Строки не найдены в массиве")}

 

Шаг № 3 - Создание пар "строка/длина"

arr.filter(i=>i.constructor.name==='String').map(t=>({str: t, size: t.length}))

 

Шаг № 4 - Сортировка по возрастанию длины

arr.filter(i=>i.constructor.name==='String').map(t=>({str: t, size: t.length})).sort((a,b)=>(a.size-b.size))

 

Шаг № 5 - Извлечение первого элемента

arr.filter(i=>i.constructor.name==='String').map(t=>({str: t, size: t.length})).sort((a,b)=>(a.size-b.size))[0].str

 

Функция нахождения самой короткой строки в массиве

function shortStrFromArray(arr){
   if(arr.filter(i=>i.constructor.name==='String').length = 0){return console.log("Строки не найдены в массиве")};
   return arr.filter(i=>i.constructor.name==='String').map(t=>({str: t, size: t.length})).sort((a,b)=>(a.size-b.size))[0].str
}

 

Информационные ссылки

Стандарт ECMAScript - https://tc39.es/ecma262/

Поделись записью