我有一个函数,它从一个数组中获取元素(每个 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但是我不太明白如何解决这个问题。
我将感谢您的帮助!


