group-to-map.js 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var is_array_1 = require("./is-array");
  4. var is_function_1 = require("./is-function");
  5. var group_by_1 = require("./group-by");
  6. /**
  7. * 将数据分组成 map
  8. * @param data
  9. * @param condition
  10. */
  11. function groupToMap(data, condition) {
  12. if (!condition) {
  13. return {
  14. 0: data,
  15. };
  16. }
  17. if (!is_function_1.default(condition)) {
  18. // 如果是字符串,则按照 a*b 风格成数组
  19. var paramscondition_1 = is_array_1.default(condition) ? condition : condition.replace(/\s+/g, '').split('*');
  20. condition = function (row) {
  21. var unique = '_'; // 避免出现数字作为Key的情况,会进行按照数字的排序
  22. // 根据字段列表的值,拼接成 key
  23. for (var i = 0, l = paramscondition_1.length; i < l; i++) {
  24. unique += row[paramscondition_1[i]] && row[paramscondition_1[i]].toString();
  25. }
  26. return unique;
  27. };
  28. }
  29. return group_by_1.default(data, condition);
  30. }
  31. exports.default = groupToMap;
  32. //# sourceMappingURL=group-to-map.js.map