在调用forEach遍历Set集合的时候,如果一个值已经被访问过了,但是该值被删除被重新添加到集合,如果此时forEach循环并没有结束 那么该值会被重新访问 解决方法如下 重新构造另外一个Set集合并遍历它
// 在调用forEach遍历Set集合的时候,如果一个值已经被访问过了,但是该值被删除被重新添加到集合,如果此时forEach循环并没有结束
// 那么该值会被重新访问 解决方法如下 重新构造另外一个Set集合并遍历它 const set = new Set([1])
const newSet = new Set(set)
newSet.forEach(item => {
set.delete(1)
set.add(1)
console.log('我在遍历')
})
可以参照https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set/forEach