Javascript loops: Difference between revisions
From wikinotes
Line 32: | Line 32: | ||
= for in loops = | = for in loops = | ||
<blockquote> | <blockquote> | ||
Assign var for each | Assign var for each '''index''' in enumerable. | ||
<source lang="javascript"> | <source lang="javascript"> | ||
for (let item in my_enumerable) { | for (let item in my_enumerable) { |
Revision as of 17:22, 18 December 2022
keywords
use
break
to exit a loop early.break // exit loop early continue // skip to next iteration
for loops
// initializer; exit-condition; each-loop for (let i = 0; i < 100; i++) { // ... }
for of loops
Assign var for each item in array. (lighter than for-in's assignment)
for (i of my_array) { console.log(my_array[i]) }
for in loops
Assign var for each index in enumerable.
for (let item in my_enumerable) { console.log(item) }
while loops
while (var < 100) { // ... }// execute once, regardless of whether var < 100 do { // ... } while (var < 100)
loop labels
Assign a name to a loop lets you break or continue a specific outer loop.
less_than_two_hundred: while (var < 200) { while (var < 100) { if (var > 150) { break less_than_two_hundred; } } }less_than_two_hundred: while (var < 200) { while (var < 100) { if (var % 2) { continue less_than_two_hundred; } } }
tail call optimization
When recursing in javascript, you should return with the function,
rather than recursing and returning a result.safe
function retry(operation, retries_left = 0) { if (retries_left > 0) { if (!(operation)) { return retry(operation, retries_left - 1) // <-- safe! directly returns function call } } return false }not safe!
function retry(operation, retries_left = 0) { if (retries_left > 0) { if (!(operation)) { result = retry(operation, retries_left - 1) return result // <-- not safe! calls recursed function, then returns result } } return false }