String [@@iterator]( ) Method is used to make String iterable. [@@iterator]() returns an iterator object which iterates over all code points of String. String[@@iterator] is a Built-in Property of String.
We can use this method by making a string iterator. We can make an iterator by calling the @@iterator property of String. In place of @@iterator, we use Symbol.iterator constant.
Syntax:
// Test String var str ="String"; // iterator to String var iter = str[Symbol.iterator]();
We can get the iterator object with next(). It returns the object with the key value and is done. The value key holds a real iterating value string and the done key holds true or false if iteration finishes it keeps true if not then false. We can get the value of the object by str.value and done by str.done.
Example 1: Below is the code that illustrates the use of the above approach.
Javascript
<script> const str = 'GFG' ; const iterator = str[Symbol.iterator](); let theChar = iterator.next(); for (let i = 0; i < str.length ;i++) { console.log(theChar.value , theChar.done); theChar = iterator.next(); } </script> |
Output :
"G" false "F" false "G" false
We can use the @@iterator method without assigning an iterator by using for — of loop to iterate the over-collection of data in using @@iterator method. On each iteration for — of loop call _next().value to iterate in the collection.
Example 2: Below is the code that illustrates the use of the above approach.
Javascript
<script> const str = 'GFG' ; const iterator = str[Symbol.iterator](); let theChar = iterator; for (let i = 0; i < str.length ;i++) { console.log(theChar.next().value ); } // Using for - of loop console.log( "Iterating by for-of loop :" ) for (let i of str) { console.log(i) } </script> |
Output:
"G" "F" "G" Iterating by for-of loop : "G" "F" "G"
Supported Browsers:
- Google Chrome 38 and above
- Edge 12 and above
- Firefox 36 and above
- Opera 25 and above
- Safari 9 and above
- Internet Explorer not supported
We have a complete list of Javascript string methods, to check those please go through this Javascript String Complete reference article.