Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the type errors pattern
Totals that concatenate, sorts that put 10 before 9, comparisons that refuse to run.
What went wrong: The for...in loop iterates over the array's string keys ('0', '1', '2') instead of its values, resulting in string concatenation.
The fix: Use a for...of loop to iterate over the actual element values: for (const n of numbers)
Remember: In JavaScript, for...in iterates over keys (indices), while for...of iterates over values.
The pattern behind it: type errors.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/574805ad-72af-4749-88a8-c3ce18aaddff" title="Debugging challenge: Iterating array with for in treats indices as string concatenation" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/574805ad-72af-4749-88a8-c3ce18aaddff">TryBugHunt</a></p>