Set.prototype[Symbol.iterator]()
En esta página
The [Symbol.iterator]() method of {{jsxref("Set")}} instances implements the iterable protocol and allows Set objects to be consumed by most syntaxes expecting iterables, such as the spread syntax and {{jsxref("Statements/for...of", "for...of")}} loops. It returns a set iterator object that yields the values of the set in insertion order.
The initial value of this property is the same function object as the initial value of the {{jsxref("Set.prototype.values")}} property.
{{InteractiveExample("JavaScript Demo: Set.prototypeSymbol.iterator")}}
```js interactive-example const set = new Set();
set.add(42); set.add("forty two");
const iterator = setSymbol.iterator;
console.log(iterator.next().value); // Expected output: 42
console.log(iterator.next().value); // Expected output: "forty two"
## Syntax
```js-nolint
set[Symbol.iterator]()
Parameters#
None.
Return value#
The same return value as {{jsxref("Set.prototype.values()")}}: a new iterable iterator object that yields the values of the set.
Examples#
Iteration using for...of loop#
Note that you seldom need to call this method directly. The existence of the [Symbol.iterator]() method makes Set objects iterable, and iterating syntaxes like the for...of loop automatically call this method to obtain the iterator to loop over.
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
for (const v of mySet) {
console.log(v);
}
Manually hand-rolling the iterator#
You may still manually call the next() method of the returned iterator object to achieve maximum control over the iteration process.
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
const setIter = mySet[Symbol.iterator]();
console.log(setIter.next().value); // "0"
console.log(setIter.next().value); // 1
console.log(setIter.next().value); // {}
Specifications#
{{Specifications}}
Browser compatibility#
{{Compat}}
See also#
- {{jsxref("Set")}}
- {{jsxref("Set.prototype.entries()")}}
- {{jsxref("Set.prototype.keys()")}}
- {{jsxref("Set.prototype.values()")}}
- {{jsxref("Symbol.iterator")}}
- Iteration protocols