Skip to content

Commit 5d42405

Browse files
committed
Simplify min / max implementation. We need to decide if this is strictly numeric.
1 parent 2217e6d commit 5d42405

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

defaultMethods.js

+14-16
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,20 @@ const defaultMethods = {
8181
for (let i = 1; i < data.length; i++) res %= +data[i]
8282
return res
8383
},
84-
max: (data) => Math.max(...data),
85-
min: (data) => Math.min(...data),
84+
max: (data) => {
85+
let maximum = data[0]
86+
for (let i = 1; i < data.length; i++) {
87+
if (data[i] > maximum) maximum = data[i]
88+
}
89+
return maximum
90+
},
91+
min: (data) => {
92+
let minimum = data[0]
93+
for (let i = 1; i < data.length; i++) {
94+
if (data[i] < minimum) minimum = data[i]
95+
}
96+
return minimum
97+
},
8698
in: ([item, array]) => (array || []).includes(item),
8799
preserve: {
88100
traverse: false,
@@ -705,20 +717,6 @@ defaultMethods['<='].compile = function (data, buildState) {
705717
return res
706718
}
707719
// @ts-ignore Allow custom attribute
708-
defaultMethods.min.compile = function (data, buildState) {
709-
if (!Array.isArray(data)) return false
710-
return `Math.min(${data
711-
.map((i) => buildString(i, buildState))
712-
.join(', ')})`
713-
}
714-
// @ts-ignore Allow custom attribute
715-
defaultMethods.max.compile = function (data, buildState) {
716-
if (!Array.isArray(data)) return false
717-
return `Math.max(${data
718-
.map((i) => buildString(i, buildState))
719-
.join(', ')})`
720-
}
721-
// @ts-ignore Allow custom attribute
722720
defaultMethods['>'].compile = function (data, buildState) {
723721
if (!Array.isArray(data)) return false
724722
if (data.length < 2) return false

0 commit comments

Comments
 (0)