Написать функцию которая выводит отдельно цифры, буквы и символы. проблема с буквами и символами
function symbolAll(str) {
let arr = str.split(' ').join('');
console.log(arr);
let numEl ='';
let strAll ='';
let symbol ='';
for (var index in arr) {
if ( parseInt(arr[index]) ) {
numEl = numEl + arr[index];
} else if (String(arr[index])) {
strAll = strAll + arr[index];
введите сюда код
} else {
symbol = symbol + arr[index];
введите сюда код
}
}
console.log(numEl);
console.log(strAll);
console.log(symbol);
}
symbolAll('sdf!"№jhjh12321sda11wwj jkdjkasjl1')
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Вам лучше воспользоваться регулярным выражением для этих целей.
Также обратите внимание, что в arr у вас на самом деле строка, так что название переменной обманчиво. И строку проще и надёжнее перебирать циклом for...of (особенно если могут быть символы из дальних секций Юникода):
function symbolAll(str) {
str = str.split(' ').join('');
console.log(str);
let numEl = '';
let strAll = '';
let symbol = '';
for (const character of str) {
if (parseInt(character)) { // или /\d/.test(character)
numEl += character;
} else if (/[a-z]/i.test(character)) {
strAll += character;
} else {
symbol += character;
}
}
console.log(numEl);
console.log(strAll);
console.log(symbol);
}
symbolAll('sdf!"№jhjh12321sda11wwj jkdjkasjl1')