mirror of
https://github.com/bendtherules/blog-hashnode-backup.git
synced 2026-08-18 13:42:04 +00:00
update post: How does in-built Array iterator work?
This commit is contained in:
@@ -64,12 +64,12 @@ Now that we have the in-built array iterator, the most important thing is knowin
|
|||||||
(for arr.entries(), return array of [key, value])
|
(for arr.entries(), return array of [key, value])
|
||||||
|
|
||||||
f. Set [[ArrayLikeNextIndex]] = index + 1
|
f. Set [[ArrayLikeNextIndex]] = index + 1
|
||||||
(<span id="note-1">⭐️1️⃣</span> Always increment key to next index. This sequential index is used to get the next value, irrespective of holes in that position (whether that index exists or not). It doesn't skip the empty/non-existent indexes.)
|
(⭐️1️⃣ Always increment key to next index. This sequential index is used to get the next value, irrespective of holes in that position (whether that index exists or not). It doesn't skip the empty/non-existent indexes.)
|
||||||
|
|
||||||
2. Else, (i.e. when `index >= arr.length` - reached end of array)
|
2. Else, (i.e. when `index >= arr.length` - reached end of array)
|
||||||
|
|
||||||
a. Set `[[IteratedArrayLike]]` = `undefined`.
|
a. Set `[[IteratedArrayLike]]` = `undefined`.
|
||||||
(<span id="note-2">⭐️2️⃣</span> Yes, once it reaches the end - it sets linked array to undefined. This is to ensure the once the iterator has finished, it will never return any more value. This undefined array is handled in step 0.
|
(⭐️2️⃣ Yes, once it reaches the end - it sets linked array to undefined. This is to ensure the once the iterator has finished, it will never return any more value. This undefined array is handled in step 0.
|
||||||
If this was not done and if array length was increased before next call, then it would again return new values after saying `done:true` earlier.)
|
If this was not done and if array length was increased before next call, then it would again return new values after saying `done:true` earlier.)
|
||||||
|
|
||||||
b. Return `{value: undefined, done: false}`
|
b. Return `{value: undefined, done: false}`
|
||||||
|
|||||||
Reference in New Issue
Block a user