DEV Community

Cover image for Destructuring Tweets - Episode 8 - Timeout!
Kai
Kai

Posted on

1

Destructuring Tweets - Episode 8 - Timeout!

Ahoy! Welcome to one of the articles about destructuring a coding quiz from Twitter. This time, we check out a very funny sorting algorithm. Be prepared to order numbers with timeouts!

Snippet of the Week

This week's snippet is from Catalin Pit:

const numbers = [29, 11, 201, 7, 99, 912, 39, 31];

for (let num of numbers) {
  setTimeout(() => console.log(num), num);
}
Enter fullscreen mode Exit fullscreen mode

The author defines and initializes an array holding a bunch of random numbers. Afterward, we iterate over each of them to set a timer to execute a simple console.log. Each timer gets executed after so many milliseconds, as the value of the individual array item is.

The Output

No big surprise here. Well, at least if you are familiar with the setTimeout API and gave the snippet some thought.
Indeed you get a list of sorted integers:

7

11

29

31

39

99

201

912
Enter fullscreen mode Exit fullscreen mode

The Analysis

The idea behind this snippet is glorious! Instead of comparing the values and ordering them, you just let time decide. The highest value will delay the callback most, thus be printed last.

Appendix

Don't take this snippet seriously! It's meant to be a joke. It would be best if you never utilized setTimeout like that. It's solely for, well, "setting a timer". Never abuse this behavior.

Snippet Summary

SurveyJS custom survey software

Simplify data collection in your JS app with a fully integrated form management platform. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more. Integrates with any backend system, giving you full control over your data and no user limits.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs