UNPKG

zent

Version:

一套前端设计语言和基于React的实现

43 lines (42 loc) 1.05 kB
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; } } }