Как переделать строку «abcd...» в массив не по 1 элементу, а так ["ab","bc","cd",...]?

Помогите дорешать задачу.
Вот есть строка.
var data = "abcdffzadfbnkmslvmssdd0ffvfs";
Если я сделаю просто var x = data.split("");, то будет массив ["a","b","c","d","f","f"...].
А как сделать, чтобы было ["ab","bc","cd","df","ff","fz","..."]?

+ как динамически изменять кол-во элементов в подстроках. типа не просто i + (i+1), а относительно "n" -элеметов;

=============================
это нормально подходит и понятно:
var n = 4;
for (var i = 0; i < len; i += n) {
    array.push(data.substring(i, i + n));
}
  • Вопрос задан
  • 230 просмотров
Решения вопроса 3
@Allan11
Фронтенд
Комментировать
devellopah
@devellopah
как вариант ( functional approach )

const data = "abcdff"

const list = data.split('').reduce((x, y) => 
	Array.isArray(x) ? x.concat(x[x.length - 1][1] + y): [x + y]
)

console.log('list', list); // ["ab", "bc", "cd", "df", "ff"]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы