javascript迭代器中的递增计数器

javascript迭代器中的递增计数器,javascript,Javascript,我试图在js迭代器上增加一个计数器。 当然,索引会重新初始化。想知道在js迭代器中保持计数器作用域而不重新初始化索引变量的标准做法是什么 一个想法是将该指数作为一项全球资产保留在客户内部,但不知何故,我觉得这不是一个好办法 代码如下: console.log(`Custom Iterator`) 让存储={ 顾客:[{ id:1, 姓名:`Ali`, 食物:[1,3], }, { id:2, 姓名:`Usman`, 食物:[2] }], 食物:[{ id:1, 名字:`华夫饼` }, { id

我试图在js迭代器上增加一个计数器。 当然,索引会重新初始化。想知道在js迭代器中保持计数器作用域而不重新初始化索引变量的标准做法是什么

一个想法是将该指数作为一项全球资产保留在客户内部,但不知何故,我觉得这不是一个好办法 代码如下:

console.log(`Custom Iterator`)
让存储={
顾客:[{
id:1,
姓名:`Ali`,
食物:[1,3],
}, {
id:2,
姓名:`Usman`,
食物:[2]
}],
食物:[{
id:1,
名字:`华夫饼`
}, {
id:2,
名字:`炸薯条`
}, {
id:3,
名字:`比萨饼`
}]
}
让客户={
[符号.迭代器]:()=>{
返回{
索引:0,
下一个:()=>{
设指数=0;
控制台日志(索引);

当调用
[Symbol.iterator]
时(index),您可以在迭代器运行时创建一个作用域为的索引变量:

console.log(`Custom Iterator`)
让存储={
顾客:[{
id:1,
姓名:`Ali`,
食物:[1,3],
}, {
id:2,
姓名:`Usman`,
食物:[2]
}],
食物:[{
id:1,
名字:`华夫饼`
}, {
id:2,
名字:`炸薯条`
}, {
id:3,
名字:`比萨饼`
}]
}
让客户={
[符号.迭代器]:()=>{
设指数=0;
返回{
下一个:()=>{
const value=store.customers[index++];
返回{
价值:价值,
完成:!值
};
}
};
}
}
让iterator=Customers[Symbol.iterator]();
log(iterator.next().value);
log(iterator.next().value);
log(iterator.next().value);
/*for(让客户中的客户){
控制台日志(客户);

}*/
这就是我解决atm问题的方法

让客户={
索引:0,
[符号.迭代器]:()=>{
返回{
下一个:()=>{
while(Customers.indexcustomer.food.indexOf(food.id)>-1)
//console.log(Array.isArray(customer.food)-“Array”:对象);
返回{
价值:客户,
完成:错误
}
}
返回{
完成:对
}
}
}
}
}