Вернуть длину самого короткого слова в строке
Задание - вывести длину самого короткого слова в строке. Вот мой код:
function findShort(s){
arr = s.split(' ').map((item)=>item.length).sort().at(0)
return arr
}
Но в кодварс выдает ошибку:
TypeError: Cannot read properties of undefined (reading 'split')
at findShort (test.js:3:11)
at Context.<anonymous> (test.js:15:24)
at process.processImmediate (node:internal/timers:471:21)
Что не так в коде?
Ответы (2 шт):
Автор решения: ksa
→ Ссылка
вывести длину самого короткого слова в строке
Предложу такой вариант.
function findShort(s){
return s.split(' ').reduce((m, v) => v.length < m ? v.length : m, Infinity)
}
const s = '123 456 8888888 12 90'
console.log(findShort(s))
Или еще вот такой
function findShort(s){
return Math.min(...s.split(' ').map(item => item.length))
}
const s = '123 456 8888888 12 90'
console.log(findShort(s))
Если действовать по мотивам ТСа - нужно изменить концовку
function findShort(s){
return s.split(' ').map((item)=>item.length).sort()[0]
}
const s = '12 345 6'
console.log(findShort(s))
Автор решения: De.Minov
→ Ссылка
Хм, интересная задачка, решил сделать таким образом:
Через регулярку берём слова больше 2х букв, потом сортируем их по длине и выводим первый вариант.
Т.к. автору нужна именно длина, то в конце [0].length..
const findShort = str => str.match(/([a-zа-я]{2,})/gim).sort((a,b) => a.length - b.length)[0].length;
console.log(findShort('Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне.'));