mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
79 lines
2.1 KiB
Markdown
79 lines
2.1 KiB
Markdown
<!-- Note: This file is automatically generated from source code comments. Changes made in this file will be overridden. -->
|
|
|
|
# Function compareNatural
|
|
|
|
Compare two values of any type in a deterministic, natural way.
|
|
|
|
For numeric values, the function works the same as `math.compare`.
|
|
For types of values that can't be compared mathematically,
|
|
the function compares in a natural way.
|
|
|
|
For numeric values, x and y are considered equal when the relative
|
|
difference between x and y is smaller than the configured epsilon.
|
|
The function cannot be used to compare values smaller than
|
|
approximately 2.22e-16.
|
|
|
|
For Complex numbers, first the real parts are compared. If equal,
|
|
the imaginary parts are compared.
|
|
|
|
Arrays and Matrices are compared value by value until there is an
|
|
unequal pair of values encountered. Objects are compared by sorted
|
|
keys until the keys or their values are unequal.
|
|
|
|
|
|
## Syntax
|
|
|
|
```js
|
|
math.compareNatural(x, y)
|
|
```
|
|
|
|
### Parameters
|
|
|
|
Parameter | Type | Description
|
|
--------- | ---- | -----------
|
|
`x` | * | First value to compare
|
|
`y` | * | Second value to compare
|
|
|
|
### Returns
|
|
|
|
Type | Description
|
|
---- | -----------
|
|
number | Returns the result of the comparison: 1, 0 or -1.
|
|
|
|
|
|
## Examples
|
|
|
|
```js
|
|
math.compareNatural(6, 1); // returns 1
|
|
math.compareNatural(2, 3); // returns -1
|
|
math.compareNatural(7, 7); // returns 0
|
|
|
|
math.compareNatural('10', '2'); // returns 1
|
|
|
|
var a = math.unit('5 cm');
|
|
var b = math.unit('40 mm');
|
|
math.compareNatural(a, b); // returns 1
|
|
|
|
var c = math.complex('2 + 3i');
|
|
var d = math.complex('2 + 4i');
|
|
math.compareNatural(c, d); // returns -1
|
|
|
|
math.compareNatural([1, 2, 4], [1, 2, 3]); // returns 1
|
|
math.compareNatural([1, 2, 3], [1, 2]); // returns 1
|
|
math.compareNatural([1, 5], [1, 2, 3]); // returns 1
|
|
math.compareNatural([1, 2], [1, 2]); // returns 0
|
|
|
|
math.compareNatural({a: 2}, {a: 4}); // returns -1
|
|
```
|
|
|
|
|
|
## See also
|
|
|
|
[equal](equal.md),
|
|
[unequal](unequal.md),
|
|
[smaller](smaller.md),
|
|
[smallerEq](smallerEq.md),
|
|
[larger](larger.md),
|
|
[largerEq](largerEq.md),
|
|
[compare](compare.md)
|