/** * 分组 * @@param arr 源 * @@param k key genertor * @@param f group by */ function group(arr, k, f) { var res = []; for (var i = 0; i < arr.length; i++) { var item = arr[i] var resItem = res.filter(m => f(m.key, item))[0]; if (resItem) resItem.data.push(item) else k(item) && res.push({ key: k(item), data: [item] }); } return res; } function txtBuilder(sp) { this.sp=sp||"**" this.arr = []; this.add = function () { var txt = arguments[0]; for (var i = 1, len = arguments.length; i < len; i++) { txt = txt.replace(this.sp, arguments[i]) } this.arr.push(txt) return this; } this.join = function (jsp) { return this.arr.join(jsp||''); } }