35 lines
843 B
JavaScript
35 lines
843 B
JavaScript
export default function(values, valueof) {
|
|
var n = values.length,
|
|
i = -1,
|
|
value,
|
|
min;
|
|
|
|
if (valueof == null) {
|
|
while (++i < n) { // Find the first comparable value.
|
|
if ((value = values[i]) != null && value >= value) {
|
|
min = value;
|
|
while (++i < n) { // Compare the remaining values.
|
|
if ((value = values[i]) != null && min > value) {
|
|
min = value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
else {
|
|
while (++i < n) { // Find the first comparable value.
|
|
if ((value = valueof(values[i], i, values)) != null && value >= value) {
|
|
min = value;
|
|
while (++i < n) { // Compare the remaining values.
|
|
if ((value = valueof(values[i], i, values)) != null && min > value) {
|
|
min = value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return min;
|
|
}
|