util.js 1.1 KB

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