util.js 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * @fileOverview shape util
  3. * @author dxq613@gmail.com
  4. */
  5. import { each, isArray, isNil } from '../../util/common';
  6. function splitPoints(obj) {
  7. var points = [];
  8. var x = obj.x;
  9. var y = obj.y;
  10. y = isArray(y) ? y : [y];
  11. y.forEach(function (yItem, index) {
  12. var point = {
  13. x: isArray(x) ? x[index] : x,
  14. y: yItem
  15. };
  16. points.push(point);
  17. });
  18. return points;
  19. }
  20. function splitArray(data, yField, connectNulls) {
  21. if (!data.length) return [];
  22. var arr = [];
  23. var tmp = [];
  24. var yValue;
  25. each(data, function (obj) {
  26. yValue = obj._origin ? obj._origin[yField] : obj[yField];
  27. if (connectNulls) {
  28. if (!isNil(yValue)) {
  29. tmp.push(obj);
  30. }
  31. } else {
  32. if (isArray(yValue) && isNil(yValue[0]) || isNil(yValue)) {
  33. if (tmp.length) {
  34. arr.push(tmp);
  35. tmp = [];
  36. }
  37. } else {
  38. tmp.push(obj);
  39. }
  40. }
  41. });
  42. if (tmp.length) {
  43. arr.push(tmp);
  44. }
  45. return arr;
  46. }
  47. export { splitPoints, splitArray };