Получить несколько подстрок из одной строки
Не пойму почему не получаю нужный результат. Выводит только первые 4 символа. Помогите пожста.
const splitText = (str, len) => {
const strArr = [];
if (typeof str !== 'string') { return null; }
let chunk = str.substring(0, len);
strArr.push(chunk[0].toUpperCase() + chunk.slice(1));
return strArr.join('\n');
}
console.log(splitText('abcdefghijklmnop', 4));
/* Abcd
Efgh
Ijkl
Mnop
*/
|
Здравствуйте.
Ваша проблема заключается в том, что Вы не двигаете индекс для слайсинга. |
const splitText = (str, len) => {
const strArr = [];
let i = 0;
if (typeof str !== 'string') { return null; }
while (i < str.length) {
let chunk = str.substring(i, i + len);
strArr.push(chunk[0].toUpperCase() + chunk.slice(1));
strArr.join('\n');
i += (len);
}
return strArr;
}
console.log(splitText('abcdefghijklmnop', 4));
/* Abcd
Efgh
Ijkl
Mnop
*/
|
я понял, спасибо
|
Дмитрий Луценко,
пост #3 что делает строка 12? |
я немного уже преобразовал:
const splitText = (str, len) => {
const strArr = [];
let startPos = 0;
if (typeof str !== 'string') { return null; }
while (startPos < str.length) {
let chunk = str.substring(startPos, startPos + len);
strArr.push(chunk[0].toUpperCase() + chunk.slice(1));
startPos += len;
}
return strArr.join('\n');
}
|
Цитата:
Цитата:
|
есть еще правда одно условие : функция должна делить на подстроки длиной 10 символов, если не задан второй аргумент.
Как это сделать корректно? |
NovichokJS, предложу такой вариант...
function splitText(txt, len = 10){
txt = txt.match(new RegExp(`.{${len}}`,'g'))
txt = txt.map(el => el[0].toUpperCase() + el.slice(1))
return txt.join('\n')
}
alert(splitText('abcdefghijklmnop', 4))
|
ksa, большое спасибо вам!
|
| Часовой пояс GMT +3, время: 05:22. |