vue-ant-patterns
Version:
vue-ant-patterns
55 lines (45 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.uniq = exports.recursionDragNode = undefined;
var _extend = require('extend');
var _extend2 = _interopRequireDefault(_extend);
var _utils = require('../../lib/_utils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// 利用map去重
/*
* @Author: w.pengfei
* @Date: 2020-09-06 12:09:37
* @LastEditTime: 2020-09-06 12:16:43
* @Description: ''
* @LastEditors: w.pengfei
*/
function uniq() {
var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
var map = {};
var list = [];
source.map(function (it) {
var k = (0, _utils.relationHandler)(key, it);
map[k] = (0, _extend2['default'])({}, it);
});
Object.keys(map).map(function (k) {
list.push((0, _extend2['default'])({}, map[k]));
});
return { list: list, map: map };
}
// 递归查找匹配的节点
function recursionDragNode(data, key, rel, callback) {
data.forEach(function (item, index, arr) {
var kVal = (0, _utils.relationHandler)(rel, item);
if (kVal === key) {
return callback(item, index, arr);
}
if (item.children) {
return recursionDragNode(item.children, key, rel, callback);
}
});
}
exports.recursionDragNode = recursionDragNode;
exports.uniq = uniq;