Итерация по строке и удаление всех экземпляров
Моими инструкциями было перебрать строку и удалить все вхождения буквы "а". Я думал, что будет легко найти примеры, но я не смог этого сделать. Некоторые удаляли бы письмо без итерации, но это не то, что просили инструкции. Если бы кто-то мог, пожалуйста, взглянуть на мой код и помочь мне в моей задаче, я был бы очень признателен! Функция "removeA" теперь будет перебирать строку, и только консоль записывает!== "a", но я не могу понять, как сохранить ее в новой строке. Заранее спасибо.
removeA = function(stringWithA) {
if (stringWithA === null || typeof (stringWithA) !== "string" || stringWithA === "") { //Checking for is null AND is not array
return 'Please enter a valid string';
} else {
lowerWithA = stringWithA.toLowerCase();
for (var i = 0; i < lowerWithA.length; i++) {
if (lowerWithA.charAt(i) !== "a") {
console.log(lowerWithA.charAt(i));
}
}
}
}
3 ответа
Почему бы не создать новую строку со всеми символами, которые не являются a
?
var newString = "";
for (var i = 0; i < lowerWithA.length; i++) {
var letter = lowerWithA.charAt(i);
if (letter !== "a") {
newString += letter;
}
}
console.log(newString);
Если вы хотите расширить это, чтобы быть без учета регистра:
...
if (letter !== 'a' || letter !== 'A') { ... }
И просто не звони String.toLowerCase()
на оригинальной строке.
Вы можете хранить буквы в массиве.
var removeA = function(stringWithA) {
if (stringWithA === null || typeof(stringWithA) !== "string" || stringWithA === "") { //Checking for is null AND is not array
return 'Please enter a valid string';
} else {
var newString = [];
lowerWithA = stringWithA.toLowerCase();
for (var i = 0; i < lowerWithA.length; i++) {
if (lowerWithA.charAt(i) !== "a") {
newString.push(lowerWithA.charAt(i))
}
}
return newString.join('');
}
}
console.log(removeA("Eleazar"))
Или просто используйте regex
:
var removeA = function(stringWithA) {
if (stringWithA === null || typeof(stringWithA) !== "string" || stringWithA === "") { //Checking for is null AND is not array
return 'Please enter a valid string';
} else {
return stringWithA.replace(/a/gi, '')
}
}
console.log(removeA("EleaaaaazAreeeeaaaElAAAAAeaaaEleEvene"))
Я полагаю, что уже есть функция, которая вам нужна, replace
:
var stringWithA = 'A aaaa bbbcc!';
alert(stringWithA.replace(/[Aa]/g, ''));