# Builtin Ord / Compare method for primitives

**URL:** <https://es.discourse.group/t/builtin-ord-compare-method-for-primitives/724>\
**Category:** 💡 Ideas\
**Created:** [April 4, 2021, 2:08pm UTC](https://es.discourse.group/t/builtin-ord-compare-method-for-primitives/724 "2021-04-04T14:08:28Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![aclaymore](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/aclaymore/32/501_2.png) [@aclaymore](https://es.discourse.group/u/aclaymore)\
**Post date:** [April 4, 2021, 6:32pm UTC](https://es.discourse.group/t/builtin-ord-compare-method-for-primitives/724/2 "2021-04-04T18:32:01Z")

</div>

Related threads:

> [@More sort comparison functions](https://es.discourse.group/t/more-sort-comparison-functions/459):
>
> [Temporal's going to have a Temporal.Absolute.compare function suitable for Array.prototype.sort.](https://github.com/tc39/proposal-temporal/blob/2ba1fa1971b4c07a6c398473231aac9b827b0de0/docs/absolute.md#temporalabsolutecompareone-temporalabsolute-two-temporalabsolute--number) By any chance, can we have some more comparison functions for existing data types, for similar uses? Number.compare BigInt.compare String.compare (useful when sorting an array of objects by a string key) Date.compare Code for each of those would be pretty obvious: // Note: this considers `NaN`s as equal on purpose Number.compare = (a, b) =\> { a = +a; b = +b if (a \> b) return 1 if (a \<…

> [@Symbol.compareTo protocol](https://es.discourse.group/t/symbol-compareto-protocol/595):
>
> class Sample { constructor(value) { this.#internal = value } [Symbol.compareTo](b) { // returns `-1`, `0`, `1` if (input instanceof Sample) { return this.#internal \< b.#internal ? 1 : -1 } return -1 } } const samples = [new Sample(2), new Sample(1),] samples.sort() // effect `Array.prototyp.sort` default behavior References: [https://docs.microsoft.com/en-us/dotnet/api/system.icomparable.compareto?view=net-5.0](https://docs.microsoft.com/en-us/dotnet/api/system.icomparable.compareto?view=net-5.0)[https://docs.oracle.com/e…](https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/lang/Comparable.html)

---

_[View the full topic](https://es.discourse.group/t/builtin-ord-compare-method-for-primitives/724)._
