Я решаю некоторые проблемы с Coderbyte для начинающих и столкнулся с интересной дилеммой. Вот проблема:
«Используя язык JavaScript, пусть функция LongestWord(sen) принимает передаваемый параметр sen и возвращает самое большое слово в строке. Если есть два или более слова одинаковой длины, верните первое слово из строки с этим значением. длина. Не обращайте внимания на знаки препинания и предположите, что sen не будет пустым".
Вот мой код:
function LongestWord(sen) {
var myArray = sen.split(" ");
var lengthOfSubstring = 0;
for (var i = 0; i < myArray.length; i++) {
if (myArray[i].length > lengthOfSubstring) {
lengthOfSubstring = myArray[i].length;
sen = myArray[i];
}
}
return sen;
}
console.log(LongestWord("Argument goes here"));
Мой код проходит все тесты, если аргумент не содержит знаков препинания. Можно ли как-то удалить или проигнорировать? Каждый поиск вызывает регулярное выражение и очень пугающий синтаксис, ха-ха
РЕДАКТИРОВАТЬ: использовал метод match() для параметра sen, любезно предоставленный @Markus
function LongestWord(sen) {
var myArray = sen.match(/[a-z]+/gi);
var lengthOfSubstring = 0;
for (var i = 0; i < myArray.length; i++) {
if (myArray[i].length > lengthOfSubstring) {
lengthOfSubstring = myArray[i].length;
sen = myArray[i];
}
}
return sen;
}
console.log(LongestWord("Argument goes here"));