xianniu-ui 0.3.20 → 0.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xianniu-ui",
3
- "version": "0.3.20",
3
+ "version": "0.3.21",
4
4
  "private": false,
5
5
  "main": "lib/xianniu-ui.umd.min.js",
6
6
  "scripts": {
@@ -70,7 +70,7 @@ const download = (params = { name: '', url: '' }) => {
70
70
  x.open('GET', url, true)
71
71
  // x.responseType = 'blob'
72
72
  // x.responseType = 'blob'
73
- x.onprogress = function(){
73
+ x.onprogress = function () {
74
74
  }
75
75
  x.onload = function () {
76
76
  var _url = ''
@@ -87,10 +87,43 @@ const download = (params = { name: '', url: '' }) => {
87
87
  }
88
88
  x.send()
89
89
  }
90
+ /**
91
+ * 根据某个key 对数组去重合并
92
+ * @param {array} arr 需要合并的数组
93
+ * @param {string} key 传入要合并的key
94
+ * @return {array} result
95
+ */
96
+ const arrMerge = (arr = [], key = '') => {
97
+ if (!key) {
98
+ throw new Error('error arguments: key is required')
99
+ }
100
+ if(!arr.length) return
101
+ var map = {}; var result = []
90
102
 
103
+ for (var i = 0; i < arr.length; i++) {
104
+ var ai = arr[i]
105
+ if (!map[ai[key]]) {
106
+ result.push({
107
+ [key]: ai[key],
108
+ children: [ai]
109
+ })
110
+ map[ai[key]] = ai
111
+ } else {
112
+ for (var j = 0; j < result.length; j++) {
113
+ var dj = result[j]
114
+ if (dj[key] === ai[key]) {
115
+ dj.children.push(ai)
116
+ break
117
+ }
118
+ }
119
+ }
120
+ }
121
+ return result
122
+ }
91
123
  export default {
92
124
  isEmpty,
93
125
  isImg,
94
126
  deepClone,
95
- download
127
+ download,
128
+ arrMerge
96
129
  }