MCPcopy Index your code
hub / github.com/microsoft/SandDance / extent

Function extent

docs/app/js/sanddance-app.js:106810–106841  ·  view source on GitHub ↗

* Return an array with minimum and maximum values, in the * form [min, max]. Ignores null, undefined, and NaN values.

(array2, f)

Source from the content-addressed store, hash-verified

106808 * Return an array with minimum and maximum values, in the
106809 * form [min, max]. Ignores null, undefined, and NaN values.
106810 */ function extent(array2, f) {
106811 let i = 0, n, v, min, max;
106812 if (array2 && (n = array2.length)) {
106813 if (f == null) {
106814 // find first valid value
106815 for(v = array2[i]; i < n && (v == null || v !== v); v = array2[++i]);
106816 min = max = v; // visit all other values
106817 for(; i < n; ++i){
106818 v = array2[i]; // skip null/undefined; NaN will fail all comparisons
106819 if (v != null) {
106820 if (v < min) min = v;
106821 if (v > max) max = v;
106822 }
106823 }
106824 } else {
106825 // find first valid value
106826 for(v = f(array2[i]); i < n && (v == null || v !== v); v = f(array2[++i]));
106827 min = max = v; // visit all other values
106828 for(; i < n; ++i){
106829 v = f(array2[i]); // skip null/undefined; NaN will fail all comparisons
106830 if (v != null) {
106831 if (v < min) min = v;
106832 if (v > max) max = v;
106833 }
106834 }
106835 }
106836 }
106837 return [
106838 min,
106839 max
106840 ];
106841}
106842function extentIndex(array3, f) {
106843 const n = array3.length;
106844 let i = -1, a, b, c, u, v;

Callers

nothing calls this directly

Calls 1

fFunction · 0.70

Tested by

no test coverage detected