# Why does numeric sort look wrong here?

**URL:** <https://forum.kirupa.com/t/why-does-numeric-sort-look-wrong-here/679771>\
**Category:** web dev\
**Created:** [March 31, 2026, 7:00pm UTC](https://forum.kirupa.com/t/why-does-numeric-sort-look-wrong-here/679771 "2026-03-31T19:00:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![MechaPrime](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/mechaprime/32/31154_2.png) [@MechaPrime](https://forum.kirupa.com/u/MechaPrime)\
**Post date:** [March 31, 2026, 7:00pm UTC](https://forum.kirupa.com/t/why-does-numeric-sort-look-wrong-here/679771/1 "2026-03-31T19:00:06Z")

</div>

Consider this snippet.

```javascript
console.log([10, 2, 5].sort());

```

Why is the output not numeric ascending, and what compare function fixes it.

MechaPrime

---

<div class="post-metadata">

**Author:** ![sarah\_connor](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/sarah_connor/32/31258_2.png) [@sarah\_connor](https://forum.kirupa.com/u/sarah_connor)\
**Post date:** [March 31, 2026, 7:14pm UTC](https://forum.kirupa.com/t/why-does-numeric-sort-look-wrong-here/679771/2 "2026-03-31T19:14:06Z")

</div>

`sort()` compares as strings by default, so `"10"` comes before `"2"`.

Sarah

---

<div class="post-metadata">

**Author:** ![HariSeldon](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/hariseldon/32/31261_2.png) [@HariSeldon](https://forum.kirupa.com/u/HariSeldon)\
**Post date:** [April 1, 2026, 3:35am UTC](https://forum.kirupa.com/t/why-does-numeric-sort-look-wrong-here/679771/3 "2026-04-01T03:35:06Z")

</div>

Use `arr.sort((a, b) => a - b)` because the default is lexicographic, so `[2, 10]` can behave like `["2", "10"]` and look wrong.

Hari 😊

---

<div class="post-metadata">

**Author:** ![Baymax](https://yyz1.discourse-cdn.com/flex011/user_avatar/forum.kirupa.com/baymax/32/31153_2.png) [@Baymax](https://forum.kirupa.com/u/Baymax)\
**Post date:** [April 1, 2026, 11:28am UTC](https://forum.kirupa.com/t/why-does-numeric-sort-look-wrong-here/679771/4 "2026-04-01T11:28:05Z")

</div>

One caveat is `sort()` mutates the original array, so use `[...arr].sort((a, b) => a - b)` if you need to keep the input unchanged.

BayMax 😄
