array.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.merge = merge;
  4. exports.values = values;
  5. exports.firstValue = firstValue;
  6. exports.group = group;
  7. exports.groupToMap = groupToMap;
  8. exports.remove = remove;
  9. exports.getRange = getRange;
  10. var _util = require("@antv/util");
  11. function merge(dataArray) {
  12. var rst = [];
  13. for (var i = 0, len = dataArray.length; i < len; i++) {
  14. rst = rst.concat(dataArray[i]);
  15. }
  16. return rst;
  17. }
  18. function values(data, name) {
  19. var rst = [];
  20. var tmpMap = {};
  21. for (var i = 0, len = data.length; i < len; i++) {
  22. var obj = data[i];
  23. var value = obj[name];
  24. if (!(0, _util.isNil)(value)) {
  25. if (!(0, _util.isArray)(value)) {
  26. if (!tmpMap[value]) {
  27. rst.push(value);
  28. tmpMap[value] = true;
  29. }
  30. } else {
  31. (0, _util.each)(value, function (val) {
  32. if (!tmpMap[val]) {
  33. rst.push(val);
  34. tmpMap[val] = true;
  35. }
  36. });
  37. }
  38. }
  39. }
  40. return rst;
  41. }
  42. function firstValue(data, name) {
  43. var rst = null;
  44. for (var i = 0, len = data.length; i < len; i++) {
  45. var obj = data[i];
  46. var value = obj[name];
  47. if (!(0, _util.isNil)(value)) {
  48. if ((0, _util.isArray)(value)) {
  49. rst = value[0];
  50. } else {
  51. rst = value;
  52. }
  53. break;
  54. }
  55. }
  56. return rst;
  57. }
  58. function groupToMap(data, fields) {
  59. if (!fields) {
  60. return {
  61. 0: data
  62. };
  63. }
  64. var callback = function callback(row) {
  65. var unique = '_';
  66. for (var i = 0, l = fields.length; i < l; i++) {
  67. unique += row[fields[i]] && row[fields[i]].toString();
  68. }
  69. return unique;
  70. };
  71. var groups = {};
  72. for (var i = 0, len = data.length; i < len; i++) {
  73. var row = data[i];
  74. var key = callback(row);
  75. if (groups[key]) {
  76. groups[key].push(row);
  77. } else {
  78. groups[key] = [row];
  79. }
  80. }
  81. return groups;
  82. }
  83. function group(data, fields, appendConditions) {
  84. if (appendConditions === void 0) {
  85. appendConditions = {};
  86. }
  87. if (!fields) {
  88. return [data];
  89. }
  90. var groups = groupToMap(data, fields);
  91. var array = [];
  92. if (fields.length === 1 && appendConditions[fields[0]]) {
  93. var _values = appendConditions[fields[0]];
  94. (0, _util.each)(_values, function (value) {
  95. value = '_' + value;
  96. array.push(groups[value]);
  97. });
  98. } else {
  99. for (var i in groups) {
  100. array.push(groups[i]);
  101. }
  102. }
  103. return array;
  104. }
  105. function remove(arr, obj) {
  106. if (!arr) {
  107. return;
  108. }
  109. var index = arr.indexOf(obj);
  110. if (index !== -1) {
  111. arr.splice(index, 1);
  112. }
  113. }
  114. function getRange(values) {
  115. if (!values.length) {
  116. return {
  117. min: 0,
  118. max: 0
  119. };
  120. }
  121. var max = Math.max.apply(null, values);
  122. var min = Math.min.apply(null, values);
  123. return {
  124. min: min,
  125. max: max
  126. };
  127. }