在 JavaScript 中,一个名为 Symbol.iterator 属性的特殊元件用于指定对象的自定义迭代器。Symbol.iterator 属性用于定义特定对象的迭代器的行为。迭代器是允许一次访问一个元素集合的对象。
当对象具有 Symbol.iterator 属性时,这意味着可以使用 for...of 循环或 ...spread 运算符。JavaScript 中的许多内置数据结构(例如字符串、数组、映射、集合等)都有默认迭代器。可以使用 Symbol.iterator 属性访问此默认迭代器。
语法
以下是 JavaScript Symbol.iterator 属性的语法 -
[Symbol.iterator]
参数
此属性不接受任何类型的参数。
返回值
此属性返回一个迭代器对象。
示例 1
让我们看看下面的示例,我们将在其中使用 generator 函数,该函数在 for of 循环中迭代时生成序列。
<html>
<body>
<script>
const x = {
[Symbol.iterator]: function*() {
yield 11;
yield 22;
yield 33;
}
};
for (const a of x) {
document.write(a + " < br > ");
}
</script>
</body>
</html>
如果我们执行上述程序,它将在网页上显示数字。
示例 2
考虑另一个场景,我们将使用 iteratot 的 next() 方法来检索序列中的值。
<html>
<body>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<script>
const x = {
[Symbol.iterator]: function*() {
yield "Ram";
yield "Rahul";
yield "Miryala";
}
};
const a = x[Symbol.iterator]();
document.write(a.next().value + " < br > ");
document.write(a.next().value + " < br > ");
document.write(a.next().value);
</script>
</body>
</html>
在执行上述脚本时,它将在网页上显示文本。
示例 3
在下面的示例中,我们将迭代字符串的字符。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = "WELCOME";
const a = x[Symbol.iterator]();
let result = a.next();
while (!result.done) {
document.write(result.value + " < br > ");
result = a.next();
}
</script>
</body>
</html>
当我们执行脚本时,它将在网页上显示字符串的字符。