Как выбирать по 5 элементов из общего массива?
У меня есть функция которая забирает элементы из массива (по 5 штук), эта функция может вызываться сразу из разных мест и сколько угодно раз. И есть общий массив данных. Мне нужно чтобы эта функция на каждый вызов выбирала только те элементы, из общего массива, которые еще не были выбраны ранее. Поэтому прямо в этой функции я сделал удаление элемента массива.
Получилось так:
let emails = [];
for (let index = 1; index <= 20; index++) {
emails.push({'email':`${index}@gmail.com`});
}
start();
function start() {
let data = generatePost();
if (data.length === 0) {
return true;
}
console.log(data);
start();
}
function generatePost() {
let post = [];
let add = 0;
for (let index = 0; index < emails.length; index++) {
post.push( emails[index].email );
emails.splice(index, 1);
add++;
if (add === 5) {
break;
}
}
return post;
}
В итоге, как можно увидеть, выбираются элементы не по порядку, а в конце вообще получается по одному элементу, хотя хотелось бы чтобы было по 5. Я понимаю что это splice
перестраивает индексы... Но не совсем понимаю как решить это.
Буду благодарен за помощь!