-1

我有一套基本的:

var set = new Set([0, 0, 1, 1, 1, 0]);

我想迭代它:

for (var el of set) {
  console.log(el)
}

但是:for...of并非所有浏览器都支持循环。如何在没有循环的情况下迭代 Set for...of

4

1 回答 1

0

很抱歉打扰大家,我自己找到了一个“答案”。这适用于遇到此问题并想要答案的任何人。

无论如何,使用集合的唯一原因是确保一个元素不会出现多次。解决方案是手动执行此操作,并将其保存为数组。

var arr = [0, 0, 1, 1, 1, 0]; // The array that would've gone to the Set
var newArr = [], l = arr.length;
for (var i = 0; i < l; i++) {
  if (newArr.indexOf(arr[i]) == -1) newArr.push(arr[i])
}
console.log(newArr) // [0, 1]

// Then you can iterate over the newArr as much as you want:
for (var i = 0; i < newArr.length; i++) {
  console.log(newArr[i]) // 0 and then 1
}

// Console
/*
[
  0,
  1
]
----------
0
----------
1
*/

于 2020-04-01T10:58:49.770 回答