group-to-map.js 1009 B

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