UNPKG

pixiu-number-toolkit

Version:
1 lines 2.21 kB
{"version":3,"sources":["../src/parse/rangeMap.ts"],"names":["createRangeMap","ranges","sortedRanges","a","b","r","getRangeValue","number","rangeMap","breakpoints","values","left","right","mid"],"mappings":";;AAWO,SAASA,CAAAA,CAAeC,EAA2B,CACxD,IAAMC,EAAeD,CAAO,CAAA,IAAA,CAAK,CAACE,CAAAA,CAAGC,CAAMD,GAAAA,CAAAA,CAAE,MAAQC,CAAE,CAAA,KAAK,EAC5D,OAAO,CACL,YAAaF,CAAa,CAAA,GAAA,CAAKG,CAAMA,EAAAA,CAAAA,CAAE,KAAK,CAAA,CAC5C,OAAQH,CAAa,CAAA,GAAA,CAAKG,GAAMA,CAAE,CAAA,KAAK,CACzC,CACF,CAEO,SAASC,CAAAA,CACdC,CACAC,CAAAA,CAAAA,CACe,CACf,GAAM,CAAE,YAAAC,CAAa,CAAA,MAAA,CAAAC,CAAO,CAAIF,CAAAA,CAAAA,CAC5BG,CAAO,CAAA,CAAA,CACPC,CAAQH,CAAAA,CAAAA,CAAY,OAAS,CAGjC,CAAA,GAAIF,EAASE,CAAY,CAAA,CAAC,EACxB,OAAO,IAAA,CAGT,KAAOE,CAAAA,EAAQC,CAAO,EAAA,CACpB,IAAMC,CAAM,CAAA,IAAA,CAAK,OAAOF,CAAOC,CAAAA,CAAAA,EAAS,CAAC,CACzC,CAAA,GAAIL,CAAUE,EAAAA,CAAAA,CAAYI,CAAG,CAAA,CAAG,CAC9B,GAAIA,CAAAA,GAAQJ,EAAY,MAAS,CAAA,CAAA,EAAKF,EAASE,CAAYI,CAAAA,CAAAA,CAAM,CAAC,CAAA,CAChE,OAAOH,CAAAA,CAAOG,CAAG,CAEnBF,CAAAA,CAAAA,CAAOE,EAAM,EACf,CAAA,KACED,EAAQC,CAAM,CAAA,EAElB,CAEA,OAAO,IACT","file":"chunk-A4GPCTFO.cjs","sourcesContent":["export interface Range {\r\n start: number;\r\n end: number;\r\n value: string;\r\n}\r\n\r\ninterface RangeMap {\r\n breakpoints: number[];\r\n values: string[];\r\n}\r\n\r\nexport function createRangeMap(ranges: Range[]): RangeMap {\r\n const sortedRanges = ranges.sort((a, b) => a.start - b.start);\r\n return {\r\n breakpoints: sortedRanges.map((r) => r.start),\r\n values: sortedRanges.map((r) => r.value),\r\n };\r\n}\r\n\r\nexport function getRangeValue(\r\n number: number,\r\n rangeMap: RangeMap,\r\n): string | null {\r\n const { breakpoints, values } = rangeMap;\r\n let left = 0;\r\n let right = breakpoints.length - 1;\r\n\r\n // 处理边界情况\r\n if (number < breakpoints[0]) {\r\n return null;\r\n }\r\n\r\n while (left <= right) {\r\n const mid = Math.floor((left + right) / 2);\r\n if (number >= breakpoints[mid]) {\r\n if (mid === breakpoints.length - 1 || number < breakpoints[mid + 1]) {\r\n return values[mid];\r\n }\r\n left = mid + 1;\r\n } else {\r\n right = mid - 1;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n"]}