如何在TypeScript中迭代Set?

Pro*_*000 15 typescript

你如何迭代TypeScript中的一个集合?for..of不起作用:

'Set<string>' is not an array type or a string type
Run Code Online (Sandbox Code Playgroud)

.forEach是不可接受的,因为它隐藏了this.我宁愿不在try catch块中执行while循环.我错过了什么?它不可能如此笨拙,以至于需要try {while} catch {}.

Pro*_*000 26

@SnareChops大多是正确的:

mySet.forEach(function(item){
    // do something with "this"
}, **this**);
Run Code Online (Sandbox Code Playgroud)

这有效.

我正在猜测:

for(item of mySet.values()){
}
Run Code Online (Sandbox Code Playgroud)

如果我没有使用es-shim的东西,这会让我感到烦恼,那会有用吗.但是,Angular 2的工作人员规定了垫片,所以¯_(ツ)_ /¯

唯一有效的是:

for (var item of Arrays.from(set.values())) {
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西,这太可怕了.

  • Array.from?数组似乎不起作用 (8认同)
  • 也许你的意思是“Array.from()” (2认同)