cat-tick.js 971 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. "use strict";
  2. exports.__esModule = true;
  3. exports["default"] = void 0;
  4. // cat平均算法,保头保尾
  5. var _default = function _default(cfg) {
  6. var values = cfg.values,
  7. tickCount = cfg.tickCount;
  8. if (!tickCount) {
  9. return values;
  10. }
  11. if (values.length <= 1) {
  12. return values;
  13. } // 获取间隔步长, 最小是1
  14. var step = parseInt(values.length / (tickCount - 1)) || 1;
  15. var ticks = []; // 按间隔数取对应节点
  16. for (var index = 0; index < values.length; index = index + step) {
  17. ticks.push(values[index]);
  18. }
  19. var last = values[values.length - 1]; // 如果最后一个tick不等于原数据的最后一个
  20. if (ticks[ticks.length - 1] !== last) {
  21. if (ticks.length >= tickCount) {
  22. // 如果当前的tick个数满足要求
  23. ticks[ticks.length - 1] = last;
  24. } else {
  25. // 不满足tickCount则直接加入最后一个
  26. ticks.push(last);
  27. }
  28. }
  29. return ticks;
  30. };
  31. exports["default"] = _default;