NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/util/lib/group-by.js

21 lines
503 B
JavaScript
Raw Normal View History

2023-09-14 14:47:11 +08:00
var each = require('./each');
var isArray = require('./type/is-array');
var hasOwnProperty = Object.prototype.hasOwnProperty;
var groupBy = function groupBy(data, condition) {
if (!condition || !isArray(data)) {
return data;
}
var result = {};
var key = null;
each(data, function (item) {
key = condition(item);
if (hasOwnProperty.call(result, key)) {
result[key].push(item);
} else {
result[key] = [item];
}
});
return result;
};
module.exports = groupBy;