zent
Version:
一套前端设计语言和基于React的实现
43 lines (42 loc) • 1.05 kB
JavaScript
function cmp(a, b) {
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
}
export function getPotentialValues(marks) {
if (!marks) {
return [];
}
return Object.keys(marks)
.map(function (it) { return Number(it); })
.filter(function (it) { return !Number.isNaN(it) && it !== Infinity; })
.sort(cmp);
}
export function normalizeToPotentialValue(potentialValues, value) {
var i = 0;
var j = potentialValues.length;
while (true) {
var p = Math.floor((i + j) / 2);
if (j === i + 1 || p === i) {
if (Math.abs(potentialValues[i] - value) <=
Math.abs(potentialValues[j] - value)) {
return potentialValues[i];
}
return potentialValues[j];
}
var mid = potentialValues[p];
if (value === mid) {
return mid;
}
if (value < mid) {
j = p;
}
else if (value > mid) {
i = p;
}
}
}