util.js 1.1 KB

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