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: parseInt() parses valid digits up to the first invalid character and discards the rest ('100px' becomes 100).
The fix: Use Number() and Number.isInteger() to enforce that the entire string is numeric: Number.isInteger(Number(valStr)) ? Number(valStr) : NaN
Remember: In JavaScript, parseInt() tolerates trailing non-numeric characters; Number() validates the entire string.
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/96f79678-edb7-4708-85a7-38cd40dd4a83" title="Debugging challenge: Parsing number with trailing letters produces partial integer" 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/96f79678-edb7-4708-85a7-38cd40dd4a83">TryBugHunt</a></p>