Удаление пробелов в строке в начале и в конце
Задача: не используя регулярные выражения, не используя метод trim, написать функцию которая удаляет пробелы вначале и в конце строки. Пробовал так, но удаляет все пробелы
function deleteSpace(string){
let newStr = "*";
for(elem of string){
if(elem !== " "){
newStr = newStr + elem;
}
};
return newStr + "*";
}
console.log(deleteSpace(str))
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
вариант 1:
while (string[0] == ' ')
string = string.substr(1);
while (string[string.length - 1] == ' ')
string = string.substr(0, string.length - 1);
вариант 2 (в принципе то же самое, но без заморочки и индекса):
while (string.startsWith(' '))
string = string.substr(1);
while (string.endsWith(' '))
string = string.substr(0, string.length - 1);
Автор решения: Stanislav Volodarskiy
→ Ссылка
Пара слов об эффективности. Лучше найти позиции для первого и последнего непробельных символов и вырезать подстроку один раз:
var myTrim = function(s) {
var first = undefined;
for (var i = 0; i < s.length; ++i) {
if (s[i] !== ' ') {
first = i;
break;
}
}
if (first === undefined) {
return '';
}
var last;
for (var i = s.length - 1; ; --i) {
if (s[i] !== ' ') {
last = i;
break;
}
}
return s.substring(first, last + 1);
};