cody-utils 1.0.1 → 1.0.3

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.
Files changed (62) hide show
  1. package/README.md +9 -9
  2. package/dist/cody-utils.min.js +30 -30
  3. package/package.json +8 -2
  4. package/.history/package_20200212101131.json +0 -19
  5. package/.history/package_20250527165758.json +0 -19
  6. package/.history/package_20250527165800.json +0 -19
  7. package/.history/package_20250527165806.json +0 -19
  8. package/.history/package_20250527165810.json +0 -19
  9. package/.history/package_20250527165815.json +0 -19
  10. package/.history/package_20250527165817.json +0 -19
  11. package/.history/package_20250527165826.json +0 -19
  12. package/.history/package_20250527165829.json +0 -19
  13. package/.history/package_20250527165835.json +0 -19
  14. package/.history/package_20250527170050.json +0 -19
  15. package/.history/package_20250527170051.json +0 -19
  16. package/.history/webpack.config_20200212101131.js +0 -23
  17. package/.history/webpack.config_20250527165622.js +0 -23
  18. package/.history/webpack.config_20250527165631.js +0 -23
  19. package/.history/webpack.config_20250527165643.js +0 -23
  20. package/.history/webpack.config_20250527165647.js +0 -23
  21. package/test/01_call_apply_bind.html +0 -47
  22. package/test/02_throttle_debounce.html +0 -54
  23. package/test/02_/345/207/275/346/225/260/351/230/262/346/212/226/344/270/216/350/212/202/346/265/201.jpg +0 -0
  24. package/test/03_array_declare.html +0 -51
  25. package/test/04_array_unique.html +0 -32
  26. package/test/05_array_concat_slice.html +0 -28
  27. package/test/06_array_flatten.html +0 -23
  28. package/test/07_array_compact_chunk.html +0 -25
  29. package/test/08_array_difference_merge.html +0 -22
  30. package/test/09_array_pull_pullAll.html +0 -27
  31. package/test/10_array_drop_dropRight.html +0 -32
  32. package/test/11_new_instanceof.html +0 -47
  33. package/test/12_object_merge.html +0 -34
  34. package/test/13_deepClone.html +0 -42
  35. package/test/13_shallowClone.html +0 -27
  36. package/test/13_/346/265/213/350/257/225/351/201/215/345/216/206/345/257/271/350/261/241/346/225/210/347/216/207.html +0 -38
  37. package/test/13_/346/265/213/350/257/225/351/201/215/345/216/206/346/225/260/347/273/204/346/225/210/347/216/207.html +0 -60
  38. package/test/14_string.html +0 -21
  39. package/test/15_/346/211/213/345/206/231/347/273/247/346/211/277.html +0 -53
  40. package/test/16_/346/211/213/345/206/231/344/272/213/344/273/266/346/200/273/347/272/277.html +0 -32
  41. package/test/17_/346/211/213/345/206/231/346/266/210/346/201/257/350/256/242/351/230/205/344/270/216/345/217/221/345/270/203.html +0 -48
  42. package/test/18_/346/211/213/345/206/231Promise.html +0 -49
  43. package/test/19_/346/211/213/345/206/231ajax/350/257/267/346/261/202/345/207/275/346/225/260.html +0 -102
  44. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/01_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/346/225/260/347/273/204//346/225/260/347/273/204/345/270/270/350/247/201/346/223/215/344/275/2341.html +0 -48
  45. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/01_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/346/225/260/347/273/204//346/225/260/347/273/204/345/270/270/350/247/201/346/223/215/344/275/2342.html +0 -74
  46. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/01_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/346/225/260/347/273/204//346/225/260/347/273/204/345/270/270/350/247/201/346/223/215/344/275/2343.html +0 -53
  47. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/01_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/346/225/260/347/273/204//346/225/260/347/273/204/345/270/270/350/247/201/346/223/215/344/275/2344.html +0 -54
  48. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/02_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/346/240/210//346/240/210_/345/272/224/347/224/250_/345/215/201/350/277/233/345/210/266/350/275/254/344/272/214/350/277/233/345/210/266.html +0 -41
  49. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/02_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/346/240/210//346/240/210_/346/265/213/350/257/225.html +0 -29
  50. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/03_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/351/230/237/345/210/227//344/274/230/345/205/210/347/272/247/351/230/237/345/210/227_/346/265/213/350/257/225.html +0 -29
  51. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/03_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/351/230/237/345/210/227//351/230/237/345/210/227_/345/272/224/347/224/250_/345/207/273/351/274/223/344/274/240/350/212/261.html +0 -38
  52. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/03_/345/237/272/346/234/254/346/225/260/346/215/256/347/273/223/346/236/204_/351/230/237/345/210/227//351/230/237/345/210/227_/346/265/213/350/257/225.html +0 -33
  53. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/04_/346/225/260/346/215/256/347/273/223/346/236/204_/351/223/276/350/241/250//345/217/214/345/220/221/351/223/276/350/241/250_/346/265/213/350/257/225.html +0 -55
  54. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/04_/346/225/260/346/215/256/347/273/223/346/236/204_/351/223/276/350/241/250//351/223/276/350/241/250_/346/265/213/350/257/225.html +0 -52
  55. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/05_/346/225/260/346/215/256/347/273/223/346/236/204_/346/240/221//344/272/214/345/217/211/346/220/234/347/264/242/346/240/221_/346/265/213/350/257/225.html +0 -48
  56. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/06_/346/225/260/346/215/256/347/273/223/346/236/204_/351/233/206/345/220/210//351/233/206/345/220/210_/346/265/213/350/257/225.html +0 -50
  57. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/07_/346/216/222/345/272/217/347/256/227/346/263/225/3/347/247/215/345/237/272/346/234/254/346/216/222/345/272/217_/346/265/213/350/257/225.html +0 -19
  58. package/test/20_/346/225/260/346/215/256/347/273/223/346/236/204/344/270/216/347/256/227/346/263/225/07_/346/216/222/345/272/217/347/256/227/346/263/225//351/253/230/347/272/247/346/216/222/345/272/217_/346/265/213/350/257/225.html +0 -19
  59. package/test/README.md +0 -207
  60. package/test/db.json +0 -54
  61. package/webpack.config.js +0 -23
  62. package//350/207/252/345/256/232/344/271/211npm/345/267/245/345/205/267/345/272/223.md +0 -91
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # 尚硅谷大前端自定义工具函数库
1
+ # 大前端自定义工具函数库
2
2
 
3
3
  # 说明
4
4
  ## 1. 包含以下8个方面
@@ -14,20 +14,20 @@
14
14
 
15
15
  ## 2. 使用
16
16
  1). 下载:
17
- npm install -S atguigu-utils
18
- yarn add atguigu-utils
17
+ npm install cody-utils
18
+ yarn add cody-utils
19
19
 
20
20
  2). 网页中使用
21
- <script src="./node_modules/atguigu-utils/dist/atguigu-utils.js"></script>
21
+ <script src="./node_modules/cody-utils/dist/cody-utils.min.js"></script>
22
22
  <script>
23
- console.log(aUtils.flatten1([1, [3, [2, 4]]])) // [1, 3, 2, 4]
23
+ console.log(codyUtils.flatten1([1, [3, [2, 4]]])) // [1, 3, 2, 4]
24
24
  </script>
25
25
 
26
26
  3). 模块化引入
27
- import {flatten1} from 'atguigu-utils'
28
- const {flatten2} = require('atguigu-utils')
29
- console.log(aUtils.flatten1([1, [3, [2, 4]]]))
30
- console.log(aUtils.flatten2([1, [3, [2, 4]]]))
27
+ import {flatten1} from 'cody-utils'
28
+ const {flatten2} = require('cody-utils')
29
+ console.log(codyUtils.flatten1([1, [3, [2, 4]]]))
30
+ console.log(codyUtils.flatten2([1, [3, [2, 4]]]))
31
31
 
32
32
  4). 完整的功能函数测试
33
33
  test文件夹下都一系列测试页面
@@ -4,9 +4,9 @@
4
4
  else if(typeof define === 'function' && define.amd)
5
5
  define(["lodash"], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["cUtils"] = factory(require("lodash"));
7
+ exports["codyUtils"] = factory(require("lodash"));
8
8
  else
9
- root["cUtils"] = factory(root["_"]);
9
+ root["codyUtils"] = factory(root["_"]);
10
10
  })(window, function(__WEBPACK_EXTERNAL_MODULE_lodash__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
@@ -104,7 +104,7 @@ return /******/ (function(modules) { // webpackBootstrap
104
104
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
105
105
 
106
106
  "use strict";
107
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chunk\", function() { return chunk; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chunk2\", function() { return chunk2; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"lodash\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* \n将数组拆分成多个 size 长度的区块,每个区块组成小数组,整体组成一个二维数组\n*/\n\n\nfunction chunk (array, size) {\n if (array.length===0) {\n return []\n }\n size = size || 1\n\n const bigArr = []\n let smallArr = []\n\n array.forEach(item => {\n if (smallArr.length===0) {\n bigArr.push(smallArr)\n }\n smallArr.push(item)\n if (smallArr.length===size) {\n smallArr = []\n }\n })\n \n return bigArr\n}\n\nfunction chunk2(array, size) {\n return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.chunk(array, size)\n}\n\n//# sourceURL=webpack://cUtils/./src/array/chunk.js?");
107
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chunk\", function() { return chunk; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"chunk2\", function() { return chunk2; });\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ \"lodash\");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);\n/* \n将数组拆分成多个 size 长度的区块,每个区块组成小数组,整体组成一个二维数组\n*/\n\n\nfunction chunk (array, size) {\n if (array.length===0) {\n return []\n }\n size = size || 1\n\n const bigArr = []\n let smallArr = []\n\n array.forEach(item => {\n if (smallArr.length===0) {\n bigArr.push(smallArr)\n }\n smallArr.push(item)\n if (smallArr.length===size) {\n smallArr = []\n }\n })\n \n return bigArr\n}\n\nfunction chunk2(array, size) {\n return lodash__WEBPACK_IMPORTED_MODULE_0___default.a.chunk(array, size)\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/chunk.js?");
108
108
 
109
109
  /***/ }),
110
110
 
@@ -116,7 +116,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
116
116
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
117
117
 
118
118
  "use strict";
119
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compact\", function() { return compact; });\n/* \ncompact(array): 返回数组中所有真值元素组成的新数组\n*/\nfunction compact (array) {\n return array.filter(item => item)\n}\n\n//# sourceURL=webpack://cUtils/./src/array/compact.js?");
119
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"compact\", function() { return compact; });\n/* \ncompact(array): 返回数组中所有真值元素组成的新数组\n*/\nfunction compact (array) {\n return array.filter(item => item)\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/compact.js?");
120
120
 
121
121
  /***/ }),
122
122
 
@@ -128,7 +128,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
128
128
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
129
129
 
130
130
  "use strict";
131
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* \n 1. concat()\n 语法: var new_array = concat(old_array, value1[, value2[, ...[, valueN]]]) \n 功能: 将n个数组或值与当前数组合并生成一个新数组\n*/\nfunction concat (array, ...values) {\n const arr = [...array]\n values.forEach(value => { \n if (Array.isArray(value)) {\n arr.push(...value)\n } else {\n arr.push(value)\n }\n })\n return arr\n}\n\n//# sourceURL=webpack://cUtils/./src/array/concat.js?");
131
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return concat; });\n/* \n 1. concat()\n 语法: var new_array = concat(old_array, value1[, value2[, ...[, valueN]]]) \n 功能: 将n个数组或值与当前数组合并生成一个新数组\n*/\nfunction concat (array, ...values) {\n const arr = [...array]\n values.forEach(value => { \n if (Array.isArray(value)) {\n arr.push(...value)\n } else {\n arr.push(value)\n }\n })\n return arr\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/concat.js?");
132
132
 
133
133
  /***/ }),
134
134
 
@@ -140,7 +140,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
140
140
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
141
141
 
142
142
  "use strict";
143
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return filter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return find; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return findIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return every; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return some; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return test; });\n/* \n实现数组声明式处理系列工具函数\n*/\n\n/* \n实现map()\n*/\nfunction map (array, callback) {\n const arr = []\n for (let index = 0; index < array.length; index++) {\n arr.push(callback(array[index], index))\n }\n return arr\n}\n\n/*\n实现reduce() \n*/\nfunction reduce (array, callback, initValue) {\n let result = initValue\n for (let index = 0; index < array.length; index++) {\n // 调用回调函数将返回的结果赋值给result\n result = callback(result, array[index], index)\n }\n return result\n}\n\n/* \n实现filter()\n*/\nfunction filter(array, callback) {\n \n const arr = []\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) {\n arr.push(array[index])\n }\n }\n return arr\n}\n\n/* \n实现find()\n*/\nfunction find (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) {\n return array[index]\n }\n }\n return undefined\n}\n\n/* \n实现findIndex()\n*/\nfunction findIndex (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) {\n return index\n }\n }\n return -1\n}\n\n /* \n 实现every()\n */\n function every (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (!callback(array[index], index)) { // 只有一个结果为false, 直接返回false\n return false\n }\n }\n return true\n}\n\n/* \n实现some()\n*/\nfunction some (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) { // 只有一个结果为true, 直接返回true\n return true\n }\n }\n return false\n}\n\nfunction test() {\n console.log('test()222')\n}\n\n//# sourceURL=webpack://cUtils/./src/array/declares.js?");
143
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return map; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return reduce; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return filter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return find; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return findIndex; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return every; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return some; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return test; });\n/* \n实现数组声明式处理系列工具函数\n*/\n\n/* \n实现map()\n*/\nfunction map (array, callback) {\n const arr = []\n for (let index = 0; index < array.length; index++) {\n arr.push(callback(array[index], index))\n }\n return arr\n}\n\n/*\n实现reduce() \n*/\nfunction reduce (array, callback, initValue) {\n let result = initValue\n for (let index = 0; index < array.length; index++) {\n // 调用回调函数将返回的结果赋值给result\n result = callback(result, array[index], index)\n }\n return result\n}\n\n/* \n实现filter()\n*/\nfunction filter(array, callback) {\n \n const arr = []\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) {\n arr.push(array[index])\n }\n }\n return arr\n}\n\n/* \n实现find()\n*/\nfunction find (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) {\n return array[index]\n }\n }\n return undefined\n}\n\n/* \n实现findIndex()\n*/\nfunction findIndex (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) {\n return index\n }\n }\n return -1\n}\n\n /* \n 实现every()\n */\n function every (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (!callback(array[index], index)) { // 只有一个结果为false, 直接返回false\n return false\n }\n }\n return true\n}\n\n/* \n实现some()\n*/\nfunction some (array, callback) {\n for (let index = 0; index < array.length; index++) {\n if (callback(array[index], index)) { // 只有一个结果为true, 直接返回true\n return true\n }\n }\n return false\n}\n\nfunction test() {\n console.log('test()222')\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/declares.js?");
144
144
 
145
145
  /***/ }),
146
146
 
@@ -152,7 +152,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
152
152
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
153
153
 
154
154
  "use strict";
155
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return difference; });\n/* \ndifference(arr1, arr2): 得到arr1中所有不在arr2中的元素组成的数组(不改变原数组)\n 如: [1,3,5,7].difference([5, 8]) ==> [1, 3, 7]\n*/\nfunction difference (arr1, arr2) {\n if (arr1.length===0) {\n return []\n } else if (arr2.length===0) {\n return arr1.slice()\n }\n return arr1.filter(item => arr2.indexOf(item)===-1)\n}\n\n//# sourceURL=webpack://cUtils/./src/array/difference.js?");
155
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return difference; });\n/* \ndifference(arr1, arr2): 得到arr1中所有不在arr2中的元素组成的数组(不改变原数组)\n 如: [1,3,5,7].difference([5, 8]) ==> [1, 3, 7]\n*/\nfunction difference (arr1, arr2) {\n if (arr1.length===0) {\n return []\n } else if (arr2.length===0) {\n return arr1.slice()\n }\n return arr1.filter(item => arr2.indexOf(item)===-1)\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/difference.js?");
156
156
 
157
157
  /***/ }),
158
158
 
@@ -164,7 +164,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
164
164
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
165
165
 
166
166
  "use strict";
167
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return drop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dropRight\", function() { return dropRight; });\n/* \n1. drop(array, count): \n 得到数组过滤掉左边count个后剩余元素组成的数组\n 说明: 不改变当前数组, count默认是1\n 如: drop([1,3,5,7], 2) ===> [5, 7]\n2. dropRight(array, count): \n 得到数组过滤掉右边count个后剩余元素组成的数组\n 说明: 不改变数组, count默认是1\n 如: dropRight([1,3,5,7], 2) ===> [1, 3]\n*/\n\nfunction drop (array, count) {\n if (array.length === 0 || count >= array.length) {\n return []\n }\n count = count || 1\n \n return array.filter((item, index) => index>=count)\n}\n\nfunction dropRight (array, count) {\n if (array.length === 0 || count >= array.length) {\n return []\n }\n count = count || 1\n\n return array.filter((item, index) => index < array.length-count)\n}\n\n\n//# sourceURL=webpack://cUtils/./src/array/drop.js?");
167
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return drop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dropRight\", function() { return dropRight; });\n/* \n1. drop(array, count): \n 得到数组过滤掉左边count个后剩余元素组成的数组\n 说明: 不改变当前数组, count默认是1\n 如: drop([1,3,5,7], 2) ===> [5, 7]\n2. dropRight(array, count): \n 得到数组过滤掉右边count个后剩余元素组成的数组\n 说明: 不改变数组, count默认是1\n 如: dropRight([1,3,5,7], 2) ===> [1, 3]\n*/\n\nfunction drop (array, count) {\n if (array.length === 0 || count >= array.length) {\n return []\n }\n count = count || 1\n \n return array.filter((item, index) => index>=count)\n}\n\nfunction dropRight (array, count) {\n if (array.length === 0 || count >= array.length) {\n return []\n }\n count = count || 1\n\n return array.filter((item, index) => index < array.length-count)\n}\n\n\n//# sourceURL=webpack://codyUtils/./src/array/drop.js?");
168
168
 
169
169
  /***/ }),
170
170
 
@@ -176,7 +176,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
176
176
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
177
177
 
178
178
  "use strict";
179
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flatten1\", function() { return flatten1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flatten2\", function() { return flatten2; });\n/* \n数组扁平化: 取出嵌套数组(多维)中的所有元素放到一个新数组(一维)中\n 如: [1, [3, [2, 4]]] ==> [1, 3, 2, 4]\n*/\n\n/*\n方法一: 递归 + reduce() + concat()\n*/\nfunction flatten1 (array) {\n return array.reduce((pre, item) => {\n if (Array.isArray(item)) {\n return pre.concat(flatten1(item))\n } else {\n return pre.concat(item)\n }\n }, [])\n}\n\n/*\n方法二: ... + some() + concat()\n*/\nfunction flatten2 (array) {\n let arr = [].concat(...array)\n while (arr.some(item => Array.isArray(item))) {\n arr = [].concat(...arr)\n }\n return arr\n}\n\n//# sourceURL=webpack://cUtils/./src/array/flatten.js?");
179
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flatten1\", function() { return flatten1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flatten2\", function() { return flatten2; });\n/* \n数组扁平化: 取出嵌套数组(多维)中的所有元素放到一个新数组(一维)中\n 如: [1, [3, [2, 4]]] ==> [1, 3, 2, 4]\n*/\n\n/*\n方法一: 递归 + reduce() + concat()\n*/\nfunction flatten1 (array) {\n return array.reduce((pre, item) => {\n if (Array.isArray(item)) {\n return pre.concat(flatten1(item))\n } else {\n return pre.concat(item)\n }\n }, [])\n}\n\n/*\n方法二: ... + some() + concat()\n*/\nfunction flatten2 (array) {\n let arr = [].concat(...array)\n while (arr.some(item => Array.isArray(item))) {\n arr = [].concat(...arr)\n }\n return arr\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/flatten.js?");
180
180
 
181
181
  /***/ }),
182
182
 
@@ -188,7 +188,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
188
188
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
189
189
 
190
190
  "use strict";
191
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeArray\", function() { return mergeArray; });\n/* \nmerge(arr1, arr2): 将arr2与arr1的元素进行合并组成一个新的数组(不改变原数组)\n 如: merge([1,3,5,7,5], [1, 5, 8]) ==> [1, 3, 5, 7, 5, 8]\n*/\n\nfunction mergeArray (arr1, arr2) {\n var result = arr1.slice()\n if (!arr2 || arr2.length===0) {\n return result\n }\n arr2.forEach(item => {\n if (result.indexOf(item)===-1) {\n result.push(item)\n }\n })\n \n return result\n}\n\n//# sourceURL=webpack://cUtils/./src/array/merge.js?");
191
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeArray\", function() { return mergeArray; });\n/* \nmerge(arr1, arr2): 将arr2与arr1的元素进行合并组成一个新的数组(不改变原数组)\n 如: merge([1,3,5,7,5], [1, 5, 8]) ==> [1, 3, 5, 7, 5, 8]\n*/\n\nfunction mergeArray (arr1, arr2) {\n var result = arr1.slice()\n if (!arr2 || arr2.length===0) {\n return result\n }\n arr2.forEach(item => {\n if (result.indexOf(item)===-1) {\n result.push(item)\n }\n })\n \n return result\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/merge.js?");
192
192
 
193
193
  /***/ }),
194
194
 
@@ -200,7 +200,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
200
200
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
201
201
 
202
202
  "use strict";
203
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pull\", function() { return pull; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pullAll\", function() { return pullAll; });\n/* \n1. pull(array, ...values): \n 删除数组中与value相同的元素, 返回所有删除元素的数组\n 说明: 数组发生了改变\n 如: pull([1,3,5,3,7], 2, 7, 3, 7) ===> 数组变为[1, 5], 返回值为[3,3,7]\n2. pullAll(array, values): \n 功能与pull一致, 只是参数变为数组\n 如: pullAll([1,3,5,3,7], [2, 7, 3, 7]) ===> 数组变为[1, 5], 返回值为[3,3,7]\n*/\n\nfunction pull (array, ...values) {\n if (array.length===0 || values.length===0) {\n return []\n }\n values = Array.from(new Set(values))\n var result = []\n for (let index = 0; index < array.length; index++) {\n const item = array[index];\n if (values.indexOf(item)!==-1) {\n array.splice(index, 1)\n result.push(item)\n index--\n }\n }\n return result\n}\n\nfunction pullAll (array, values) {\n if (!values || !Array.isArray(values)) {\n return []\n }\n return pull(array, ...values)\n}\n\n//# sourceURL=webpack://cUtils/./src/array/pull.js?");
203
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pull\", function() { return pull; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"pullAll\", function() { return pullAll; });\n/* \n1. pull(array, ...values): \n 删除数组中与value相同的元素, 返回所有删除元素的数组\n 说明: 数组发生了改变\n 如: pull([1,3,5,3,7], 2, 7, 3, 7) ===> 数组变为[1, 5], 返回值为[3,3,7]\n2. pullAll(array, values): \n 功能与pull一致, 只是参数变为数组\n 如: pullAll([1,3,5,3,7], [2, 7, 3, 7]) ===> 数组变为[1, 5], 返回值为[3,3,7]\n*/\n\nfunction pull (array, ...values) {\n if (array.length===0 || values.length===0) {\n return []\n }\n values = Array.from(new Set(values))\n var result = []\n for (let index = 0; index < array.length; index++) {\n const item = array[index];\n if (values.indexOf(item)!==-1) {\n array.splice(index, 1)\n result.push(item)\n index--\n }\n }\n return result\n}\n\nfunction pullAll (array, values) {\n if (!values || !Array.isArray(values)) {\n return []\n }\n return pull(array, ...values)\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/pull.js?");
204
204
 
205
205
  /***/ }),
206
206
 
@@ -212,7 +212,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
212
212
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
213
213
 
214
214
  "use strict";
215
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return slice; });\n/* \n 语法: var new_array = slice(oldArr, [begin[, end]])\n 功能: 返回一个由 begin 和 end 决定的原数组的浅拷贝, 原始数组不会被改变\n*/\nfunction slice (array, begin, end) {\n // 如果当前数组是[], 直接返回[]\n if (array.length === 0) {\n return []\n }\n\n // 如果begin超过最大下标, 直接返回[]\n begin = begin || 0\n if (begin >= array.length) {\n return []\n }\n\n // 如果end不大于begin, 直接返回[]\n end = end || array.length\n if (end > array.length) {\n end = array.length\n }\n if (end <= begin) {\n return []\n }\n\n // 取出下标在[begin, end)区间的元素, 并保存到最终的数组中\n const arr = []\n for (let index = begin; index < end; index++) {\n arr.push(array[index])\n }\n\n return arr\n}\n\n//# sourceURL=webpack://cUtils/./src/array/slice.js?");
215
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return slice; });\n/* \n 语法: var new_array = slice(oldArr, [begin[, end]])\n 功能: 返回一个由 begin 和 end 决定的原数组的浅拷贝, 原始数组不会被改变\n*/\nfunction slice (array, begin, end) {\n // 如果当前数组是[], 直接返回[]\n if (array.length === 0) {\n return []\n }\n\n // 如果begin超过最大下标, 直接返回[]\n begin = begin || 0\n if (begin >= array.length) {\n return []\n }\n\n // 如果end不大于begin, 直接返回[]\n end = end || array.length\n if (end > array.length) {\n end = array.length\n }\n if (end <= begin) {\n return []\n }\n\n // 取出下标在[begin, end)区间的元素, 并保存到最终的数组中\n const arr = []\n for (let index = begin; index < end; index++) {\n arr.push(array[index])\n }\n\n return arr\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/slice.js?");
216
216
 
217
217
  /***/ }),
218
218
 
@@ -224,7 +224,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
224
224
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
225
225
 
226
226
  "use strict";
227
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique1\", function() { return unique1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique2\", function() { return unique2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique3\", function() { return unique3; });\n/*\n方法1: 利用forEach()和indexOf()\n 说明: 本质是双重遍历, 效率差些\n*/\nfunction unique1 (array) {\n const arr = []\n array.forEach(item => {\n if (arr.indexOf(item)===-1) {\n arr.push(item)\n }\n })\n return arr\n}\n\n/*\n方法2: 利用forEach() + 对象容器\n 说明: 只需一重遍历, 效率高些\n*/\nfunction unique2 (array) {\n const arr = []\n const obj = {}\n array.forEach(item => {\n if (!obj.hasOwnProperty(item)) {\n obj[item] = true\n arr.push(item)\n }\n })\n return arr\n}\n\n/*\n方法3: 利用ES6语法\n 1). from + Set\n 2). ... + Set\n 说明: 编码简洁\n*/\nfunction unique3 (array) {\n // return Array.from(new Set(array))\n return [...new Set(array)]\n}\n\n//# sourceURL=webpack://cUtils/./src/array/unique.js?");
227
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique1\", function() { return unique1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique2\", function() { return unique2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unique3\", function() { return unique3; });\n/*\n方法1: 利用forEach()和indexOf()\n 说明: 本质是双重遍历, 效率差些\n*/\nfunction unique1 (array) {\n const arr = []\n array.forEach(item => {\n if (arr.indexOf(item)===-1) {\n arr.push(item)\n }\n })\n return arr\n}\n\n/*\n方法2: 利用forEach() + 对象容器\n 说明: 只需一重遍历, 效率高些\n*/\nfunction unique2 (array) {\n const arr = []\n const obj = {}\n array.forEach(item => {\n if (!obj.hasOwnProperty(item)) {\n obj[item] = true\n arr.push(item)\n }\n })\n return arr\n}\n\n/*\n方法3: 利用ES6语法\n 1). from + Set\n 2). ... + Set\n 说明: 编码简洁\n*/\nfunction unique3 (array) {\n // return Array.from(new Set(array))\n return [...new Set(array)]\n}\n\n//# sourceURL=webpack://codyUtils/./src/array/unique.js?");
228
228
 
229
229
  /***/ }),
230
230
 
@@ -236,7 +236,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
236
236
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
237
237
 
238
238
  "use strict";
239
- eval("__webpack_require__.r(__webpack_exports__);\n/* \n 1. 函数的返回值为promise, 成功的结果为response, 失败的结果为error\n 2. 能处理多种类型的请求: GET/POST/PUT/DELETE\n 3. 函数的参数为一个配置对象\n {\n url: '', // 请求地址\n method: '', // 请求方式GET/POST/PUT/DELETE\n params: {}, // GET/DELETE请求的query参数\n data: {}, // POST或DELETE请求的请求体参数 \n }\n 4. 响应json数据自动解析为js的对象/数组\n*/\n/* 发送任意类型请求的函数 */\nfunction axios({\n url,\n method='GET',\n params={},\n data={}\n}) {\n // 返回一个promise对象\n return new Promise((resolve, reject) => {\n\n // 处理method(转大写)\n method = method.toUpperCase()\n\n // 处理query参数(拼接到url上) id=1&xxx=abc\n /* \n {\n id: 1,\n xxx: 'abc'\n }\n */\n let queryString = ''\n Object.keys(params).forEach(key => {\n queryString += `${key}=${params[key]}&`\n })\n if (queryString) { // id=1&xxx=abc&\n // 去除最后的&\n queryString = queryString.substring(0, queryString.length-1)\n // 接到url\n url += '?' + queryString\n }\n\n\n // 1. 执行异步ajax请求\n // 创建xhr对象\n const request = new XMLHttpRequest()\n // 打开连接(初始化请求, 没有请求)\n request.open(method, url, true)\n\n // 发送请求\n if (method==='GET') {\n request.send()\n } else if (method==='POST' || method==='PUT' || method==='DELETE'){\n request.setRequestHeader('Content-Type', 'application/json;charset=utf-8') // 告诉服务器请求体的格式是json\n request.send(JSON.stringify(data)) // 发送json格式请求体参数\n }\n\n // 绑定状态改变的监听\n request.onreadystatechange = function () {\n // 如果请求没有完成, 直接结束\n if (request.readyState!==4) {\n return\n }\n // 如果响应状态码在[200, 300)之间代表成功, 否则失败\n const {status, statusText} = request\n // 2.1. 如果请求成功了, 调用resolve()\n if (status>=200 && status<=299) {\n // 准备结果数据对象response\n const response = {\n data: JSON.parse(request.response),\n status,\n statusText\n }\n resolve(response)\n } else { // 2.2. 如果请求失败了, 调用reject()\n reject(new Error('request error status is ' + status))\n }\n }\n })\n}\n\n/* 发送特定请求的静态方法 */\naxios.get = function (url, options) {\n return axios(Object.assign(options, {url, method: 'GET'}))\n}\naxios.delete = function (url, options) {\n return axios(Object.assign(options, {url, method: 'DELETE'}))\n}\naxios.post = function (url, data, options) {\n return axios(Object.assign(options, {url, data, method: 'POST'}))\n}\naxios.put = function (url, data, options) {\n return axios(Object.assign(options, {url, data, method: 'PUT'}))\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (axios);\n\n//# sourceURL=webpack://cUtils/./src/axios/index.js?");
239
+ eval("__webpack_require__.r(__webpack_exports__);\n/* \n 1. 函数的返回值为promise, 成功的结果为response, 失败的结果为error\n 2. 能处理多种类型的请求: GET/POST/PUT/DELETE\n 3. 函数的参数为一个配置对象\n {\n url: '', // 请求地址\n method: '', // 请求方式GET/POST/PUT/DELETE\n params: {}, // GET/DELETE请求的query参数\n data: {}, // POST或DELETE请求的请求体参数 \n }\n 4. 响应json数据自动解析为js的对象/数组\n*/\n/* 发送任意类型请求的函数 */\nfunction axios({\n url,\n method='GET',\n params={},\n data={}\n}) {\n // 返回一个promise对象\n return new Promise((resolve, reject) => {\n\n // 处理method(转大写)\n method = method.toUpperCase()\n\n // 处理query参数(拼接到url上) id=1&xxx=abc\n /* \n {\n id: 1,\n xxx: 'abc'\n }\n */\n let queryString = ''\n Object.keys(params).forEach(key => {\n queryString += `${key}=${params[key]}&`\n })\n if (queryString) { // id=1&xxx=abc&\n // 去除最后的&\n queryString = queryString.substring(0, queryString.length-1)\n // 接到url\n url += '?' + queryString\n }\n\n\n // 1. 执行异步ajax请求\n // 创建xhr对象\n const request = new XMLHttpRequest()\n // 打开连接(初始化请求, 没有请求)\n request.open(method, url, true)\n\n // 发送请求\n if (method==='GET') {\n request.send()\n } else if (method==='POST' || method==='PUT' || method==='DELETE'){\n request.setRequestHeader('Content-Type', 'application/json;charset=utf-8') // 告诉服务器请求体的格式是json\n request.send(JSON.stringify(data)) // 发送json格式请求体参数\n }\n\n // 绑定状态改变的监听\n request.onreadystatechange = function () {\n // 如果请求没有完成, 直接结束\n if (request.readyState!==4) {\n return\n }\n // 如果响应状态码在[200, 300)之间代表成功, 否则失败\n const {status, statusText} = request\n // 2.1. 如果请求成功了, 调用resolve()\n if (status>=200 && status<=299) {\n // 准备结果数据对象response\n const response = {\n data: JSON.parse(request.response),\n status,\n statusText\n }\n resolve(response)\n } else { // 2.2. 如果请求失败了, 调用reject()\n reject(new Error('request error status is ' + status))\n }\n }\n })\n}\n\n/* 发送特定请求的静态方法 */\naxios.get = function (url, options) {\n return axios(Object.assign(options, {url, method: 'GET'}))\n}\naxios.delete = function (url, options) {\n return axios(Object.assign(options, {url, method: 'DELETE'}))\n}\naxios.post = function (url, data, options) {\n return axios(Object.assign(options, {url, data, method: 'POST'}))\n}\naxios.put = function (url, data, options) {\n return axios(Object.assign(options, {url, data, method: 'PUT'}))\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (axios);\n\n//# sourceURL=webpack://codyUtils/./src/axios/index.js?");
240
240
 
241
241
  /***/ }),
242
242
 
@@ -248,7 +248,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* \n 1. 函数的返回值
248
248
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
249
249
 
250
250
  "use strict";
251
- eval("__webpack_require__.r(__webpack_exports__);\nconst eventBus = {}\n\n/* \n{\n add: [callback1, callback2]\n delete: [callback3]\n}\n*/\nlet callbacksObj = {}\n\n/* \n绑定事件监听\n*/\neventBus.on = function (eventName, callback) {\n const callbacks = callbacksObj[eventName]\n if (callbacks) {\n callbacks.push(callback)\n } else {\n callbacksObj[eventName] = [callback]\n }\n}\n\n/* \n分发事件\n*/\neventBus.emit = function (eventName, data) {\n const callbacks = callbacksObj[eventName]\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach(callback => {\n callback(data)\n })\n }\n}\n\n/* \n移除事件监听\n*/\neventBus.off = function (eventName) {\n if (eventName) {\n delete callbacksObj[eventName]\n } else {\n callbacksObj = {}\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eventBus);\n\n//# sourceURL=webpack://cUtils/./src/event-bus/index.js?");
251
+ eval("__webpack_require__.r(__webpack_exports__);\nconst eventBus = {}\n\n/* \n{\n add: [callback1, callback2]\n delete: [callback3]\n}\n*/\nlet callbacksObj = {}\n\n/* \n绑定事件监听\n*/\neventBus.on = function (eventName, callback) {\n const callbacks = callbacksObj[eventName]\n if (callbacks) {\n callbacks.push(callback)\n } else {\n callbacksObj[eventName] = [callback]\n }\n}\n\n/* \n分发事件\n*/\neventBus.emit = function (eventName, data) {\n const callbacks = callbacksObj[eventName]\n if (callbacks && callbacks.length > 0) {\n callbacks.forEach(callback => {\n callback(data)\n })\n }\n}\n\n/* \n移除事件监听\n*/\neventBus.off = function (eventName) {\n if (eventName) {\n delete callbacksObj[eventName]\n } else {\n callbacksObj = {}\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (eventBus);\n\n//# sourceURL=webpack://codyUtils/./src/event-bus/index.js?");
252
252
 
253
253
  /***/ }),
254
254
 
@@ -260,7 +260,7 @@ eval("__webpack_require__.r(__webpack_exports__);\nconst eventBus = {}\n\n/* \n{
260
260
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
261
261
 
262
262
  "use strict";
263
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return apply; });\n/* \n自定义函数对象的apply方法\n*/\nfunction apply (fn, obj, args) {\n // 如果传入的是null/undefined, this指定为window\n if (obj===null || obj===undefined) {\n obj = obj || window\n }\n // 给obj添加一个方法: 属性名任意, 属性值必须当前调用call的函数对象\n obj.tempFn = fn\n // 通过obj调用这个方法\n const result = obj.tempFn(...args)\n // 删除新添加的方法\n delete obj.tempFn\n // 返回函数调用的结果\n return result\n}\n\n\n//# sourceURL=webpack://cUtils/./src/function/apply.js?");
263
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return apply; });\n/* \n自定义函数对象的apply方法\n*/\nfunction apply (fn, obj, args) {\n // 如果传入的是null/undefined, this指定为window\n if (obj===null || obj===undefined) {\n obj = obj || window\n }\n // 给obj添加一个方法: 属性名任意, 属性值必须当前调用call的函数对象\n obj.tempFn = fn\n // 通过obj调用这个方法\n const result = obj.tempFn(...args)\n // 删除新添加的方法\n delete obj.tempFn\n // 返回函数调用的结果\n return result\n}\n\n\n//# sourceURL=webpack://codyUtils/./src/function/apply.js?");
264
264
 
265
265
  /***/ }),
266
266
 
@@ -272,7 +272,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
272
272
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
273
273
 
274
274
  "use strict";
275
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return bind; });\n/* harmony import */ var _call__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./call */ \"./src/function/call.js\");\n\n/* \n 自定义函数对象的bind方法\n 重要技术:\n 高阶函数\n 闭包\n call()\n 三点运算符\n*/\nfunction bind (fn, obj, ...args) {\n if (obj===null || obj===undefined) {\n obj = obj || window\n }\n \n return function (...args2) {\n Object(_call__WEBPACK_IMPORTED_MODULE_0__[\"call\"])(fn, obj, ...args, ...args2)\n }\n}\n\n//# sourceURL=webpack://cUtils/./src/function/bind.js?");
275
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return bind; });\n/* harmony import */ var _call__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./call */ \"./src/function/call.js\");\n\n/* \n 自定义函数对象的bind方法\n 重要技术:\n 高阶函数\n 闭包\n call()\n 三点运算符\n*/\nfunction bind (fn, obj, ...args) {\n if (obj===null || obj===undefined) {\n obj = obj || window\n }\n \n return function (...args2) {\n Object(_call__WEBPACK_IMPORTED_MODULE_0__[\"call\"])(fn, obj, ...args, ...args2)\n }\n}\n\n//# sourceURL=webpack://codyUtils/./src/function/bind.js?");
276
276
 
277
277
  /***/ }),
278
278
 
@@ -284,7 +284,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
284
284
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
285
285
 
286
286
  "use strict";
287
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return call; });\n/* \n自定义函数对象的call方法\n*/\nfunction call (fn, obj, ...args) {\n // 如果传入的是null/undefined, this指定为window\n if (obj===null || obj===undefined) {\n obj = obj || window\n }\n // 给obj添加一个方法: 属性名任意, 属性值必须当前调用call的函数对象\n obj.tempFn = fn\n // 通过obj调用这个方法\n const result = obj.tempFn(...args)\n // 删除新添加的方法\n delete obj.tempFn\n // 返回函数调用的结果\n return result\n}\n\n\n//# sourceURL=webpack://cUtils/./src/function/call.js?");
287
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return call; });\n/* \n自定义函数对象的call方法\n*/\nfunction call (fn, obj, ...args) {\n // 如果传入的是null/undefined, this指定为window\n if (obj===null || obj===undefined) {\n obj = obj || window\n }\n // 给obj添加一个方法: 属性名任意, 属性值必须当前调用call的函数对象\n obj.tempFn = fn\n // 通过obj调用这个方法\n const result = obj.tempFn(...args)\n // 删除新添加的方法\n delete obj.tempFn\n // 返回函数调用的结果\n return result\n}\n\n\n//# sourceURL=webpack://codyUtils/./src/function/call.js?");
288
288
 
289
289
  /***/ }),
290
290
 
@@ -296,7 +296,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
296
296
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
297
297
 
298
298
  "use strict";
299
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* \n实现函数防抖的函数\n*/\nfunction debounce(callback, delay) {\n return function () {\n console.log('debounce 事件...')\n // 保存this和arguments\n const that = this\n const args = arguments\n \n // 清除待执行的定时器任务\n if (callback.timeoutId) {\n clearTimeout(callback.timeoutId)\n }\n // 每隔delay的时间, 启动一个新的延迟定时器, 去准备调用callback\n callback.timeoutId = setTimeout(function () {\n callback.apply(that, args)\n // 如果定时器回调执行了, 删除标记\n delete callback.timeoutId\n }, delay)\n }\n}\n\n//# sourceURL=webpack://cUtils/./src/function/debounce.js?");
299
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return debounce; });\n/* \n实现函数防抖的函数\n*/\nfunction debounce(callback, delay) {\n return function () {\n console.log('debounce 事件...')\n // 保存this和arguments\n const that = this\n const args = arguments\n \n // 清除待执行的定时器任务\n if (callback.timeoutId) {\n clearTimeout(callback.timeoutId)\n }\n // 每隔delay的时间, 启动一个新的延迟定时器, 去准备调用callback\n callback.timeoutId = setTimeout(function () {\n callback.apply(that, args)\n // 如果定时器回调执行了, 删除标记\n delete callback.timeoutId\n }, delay)\n }\n}\n\n//# sourceURL=webpack://codyUtils/./src/function/debounce.js?");
300
300
 
301
301
  /***/ }),
302
302
 
@@ -308,7 +308,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
308
308
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
309
309
 
310
310
  "use strict";
311
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* \n实现函数节流的函数\n*/\n\nfunction throttle(callback, delay) {\n let start = 0 // 必须保存第一次点击立即调用\n return function () { // 它的this是谁就得让callback()中的this是谁, 它接收的所有实参都直接交给callback()\n console.log('throttle 事件')\n const current = Date.now()\n if (current - start > delay) { // 从第2次点击开始, 需要间隔时间超过delay\n callback.apply(this, arguments)\n start = current\n }\n }\n}\n\n//# sourceURL=webpack://cUtils/./src/function/throttle.js?");
311
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return throttle; });\n/* \n实现函数节流的函数\n*/\n\nfunction throttle(callback, delay) {\n let start = 0 // 必须保存第一次点击立即调用\n return function () { // 它的this是谁就得让callback()中的this是谁, 它接收的所有实参都直接交给callback()\n console.log('throttle 事件')\n const current = Date.now()\n if (current - start > delay) { // 从第2次点击开始, 需要间隔时间超过delay\n callback.apply(this, arguments)\n start = current\n }\n }\n}\n\n//# sourceURL=webpack://codyUtils/./src/function/throttle.js?");
312
312
 
313
313
  /***/ }),
314
314
 
@@ -320,7 +320,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
320
320
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
321
321
 
322
322
  "use strict";
323
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_chunk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array/chunk */ \"./src/array/chunk.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chunk\", function() { return _array_chunk__WEBPACK_IMPORTED_MODULE_0__[\"chunk\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chunk2\", function() { return _array_chunk__WEBPACK_IMPORTED_MODULE_0__[\"chunk2\"]; });\n\n/* harmony import */ var _array_compact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array/compact */ \"./src/array/compact.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compact\", function() { return _array_compact__WEBPACK_IMPORTED_MODULE_1__[\"compact\"]; });\n\n/* harmony import */ var _array_concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array/concat */ \"./src/array/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _array_concat__WEBPACK_IMPORTED_MODULE_2__[\"concat\"]; });\n\n/* harmony import */ var _array_declares__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array/declares */ \"./src/array/declares.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"map\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"filter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"reduce\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"find\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"findIndex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"every\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"some\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"test\"]; });\n\n/* harmony import */ var _array_difference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./array/difference */ \"./src/array/difference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return _array_difference__WEBPACK_IMPORTED_MODULE_4__[\"difference\"]; });\n\n/* harmony import */ var _array_drop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./array/drop */ \"./src/array/drop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return _array_drop__WEBPACK_IMPORTED_MODULE_5__[\"drop\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRight\", function() { return _array_drop__WEBPACK_IMPORTED_MODULE_5__[\"dropRight\"]; });\n\n/* harmony import */ var _array_flatten__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./array/flatten */ \"./src/array/flatten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten1\", function() { return _array_flatten__WEBPACK_IMPORTED_MODULE_6__[\"flatten1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten2\", function() { return _array_flatten__WEBPACK_IMPORTED_MODULE_6__[\"flatten2\"]; });\n\n/* harmony import */ var _array_merge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array/merge */ \"./src/array/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeArray\", function() { return _array_merge__WEBPACK_IMPORTED_MODULE_7__[\"mergeArray\"]; });\n\n/* harmony import */ var _array_pull__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./array/pull */ \"./src/array/pull.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pull\", function() { return _array_pull__WEBPACK_IMPORTED_MODULE_8__[\"pull\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pullAll\", function() { return _array_pull__WEBPACK_IMPORTED_MODULE_8__[\"pullAll\"]; });\n\n/* harmony import */ var _array_slice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./array/slice */ \"./src/array/slice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return _array_slice__WEBPACK_IMPORTED_MODULE_9__[\"slice\"]; });\n\n/* harmony import */ var _array_unique__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./array/unique */ \"./src/array/unique.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique1\", function() { return _array_unique__WEBPACK_IMPORTED_MODULE_10__[\"unique1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique2\", function() { return _array_unique__WEBPACK_IMPORTED_MODULE_10__[\"unique2\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique3\", function() { return _array_unique__WEBPACK_IMPORTED_MODULE_10__[\"unique3\"]; });\n\n/* harmony import */ var _function_apply__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./function/apply */ \"./src/function/apply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return _function_apply__WEBPACK_IMPORTED_MODULE_11__[\"apply\"]; });\n\n/* harmony import */ var _function_bind__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./function/bind */ \"./src/function/bind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return _function_bind__WEBPACK_IMPORTED_MODULE_12__[\"bind\"]; });\n\n/* harmony import */ var _function_call__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./function/call */ \"./src/function/call.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return _function_call__WEBPACK_IMPORTED_MODULE_13__[\"call\"]; });\n\n/* harmony import */ var _function_debounce__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./function/debounce */ \"./src/function/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _function_debounce__WEBPACK_IMPORTED_MODULE_14__[\"debounce\"]; });\n\n/* harmony import */ var _function_throttle__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./function/throttle */ \"./src/function/throttle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return _function_throttle__WEBPACK_IMPORTED_MODULE_15__[\"throttle\"]; });\n\n/* harmony import */ var _object_clone__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./object/clone */ \"./src/object/clone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone1\", function() { return _object_clone__WEBPACK_IMPORTED_MODULE_16__[\"clone1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone2\", function() { return _object_clone__WEBPACK_IMPORTED_MODULE_16__[\"clone2\"]; });\n\n/* harmony import */ var _object_deepClone__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./object/deepClone */ \"./src/object/deepClone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone1\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone2\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone2\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone3\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone3\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone4\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone4\"]; });\n\n/* harmony import */ var _object_merge__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./object/merge */ \"./src/object/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeObject\", function() { return _object_merge__WEBPACK_IMPORTED_MODULE_18__[\"mergeObject\"]; });\n\n/* harmony import */ var _object_myInstanceOf__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./object/myInstanceOf */ \"./src/object/myInstanceOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"myInstanceOf\", function() { return _object_myInstanceOf__WEBPACK_IMPORTED_MODULE_19__[\"myInstanceOf\"]; });\n\n/* harmony import */ var _object_newInstance__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./object/newInstance */ \"./src/object/newInstance.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"newInstance\", function() { return _object_newInstance__WEBPACK_IMPORTED_MODULE_20__[\"newInstance\"]; });\n\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./string */ \"./src/string/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reverseString\", function() { return _string__WEBPACK_IMPORTED_MODULE_21__[\"reverseString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"palindrome\", function() { return _string__WEBPACK_IMPORTED_MODULE_21__[\"palindrome\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return _string__WEBPACK_IMPORTED_MODULE_21__[\"truncate\"]; });\n\n/* harmony import */ var _axios__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./axios */ \"./src/axios/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"axios\", function() { return _axios__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _event_bus__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./event-bus */ \"./src/event-bus/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eventBus\", function() { return _event_bus__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./promise */ \"./src/promise/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Promise\", function() { return _promise__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _pub_sub__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./pub-sub */ \"./src/pub-sub/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PubSub\", function() { return _pub_sub__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://cUtils/./src/index.js?");
323
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _array_chunk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array/chunk */ \"./src/array/chunk.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chunk\", function() { return _array_chunk__WEBPACK_IMPORTED_MODULE_0__[\"chunk\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"chunk2\", function() { return _array_chunk__WEBPACK_IMPORTED_MODULE_0__[\"chunk2\"]; });\n\n/* harmony import */ var _array_compact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./array/compact */ \"./src/array/compact.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"compact\", function() { return _array_compact__WEBPACK_IMPORTED_MODULE_1__[\"compact\"]; });\n\n/* harmony import */ var _array_concat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./array/concat */ \"./src/array/concat.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"concat\", function() { return _array_concat__WEBPACK_IMPORTED_MODULE_2__[\"concat\"]; });\n\n/* harmony import */ var _array_declares__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./array/declares */ \"./src/array/declares.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"map\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"map\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"filter\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"filter\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reduce\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"reduce\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"find\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"find\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"findIndex\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"findIndex\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"every\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"every\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"some\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"some\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"test\", function() { return _array_declares__WEBPACK_IMPORTED_MODULE_3__[\"test\"]; });\n\n/* harmony import */ var _array_difference__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./array/difference */ \"./src/array/difference.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"difference\", function() { return _array_difference__WEBPACK_IMPORTED_MODULE_4__[\"difference\"]; });\n\n/* harmony import */ var _array_drop__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./array/drop */ \"./src/array/drop.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"drop\", function() { return _array_drop__WEBPACK_IMPORTED_MODULE_5__[\"drop\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"dropRight\", function() { return _array_drop__WEBPACK_IMPORTED_MODULE_5__[\"dropRight\"]; });\n\n/* harmony import */ var _array_flatten__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./array/flatten */ \"./src/array/flatten.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten1\", function() { return _array_flatten__WEBPACK_IMPORTED_MODULE_6__[\"flatten1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"flatten2\", function() { return _array_flatten__WEBPACK_IMPORTED_MODULE_6__[\"flatten2\"]; });\n\n/* harmony import */ var _array_merge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./array/merge */ \"./src/array/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeArray\", function() { return _array_merge__WEBPACK_IMPORTED_MODULE_7__[\"mergeArray\"]; });\n\n/* harmony import */ var _array_pull__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./array/pull */ \"./src/array/pull.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pull\", function() { return _array_pull__WEBPACK_IMPORTED_MODULE_8__[\"pull\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"pullAll\", function() { return _array_pull__WEBPACK_IMPORTED_MODULE_8__[\"pullAll\"]; });\n\n/* harmony import */ var _array_slice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./array/slice */ \"./src/array/slice.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"slice\", function() { return _array_slice__WEBPACK_IMPORTED_MODULE_9__[\"slice\"]; });\n\n/* harmony import */ var _array_unique__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./array/unique */ \"./src/array/unique.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique1\", function() { return _array_unique__WEBPACK_IMPORTED_MODULE_10__[\"unique1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique2\", function() { return _array_unique__WEBPACK_IMPORTED_MODULE_10__[\"unique2\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"unique3\", function() { return _array_unique__WEBPACK_IMPORTED_MODULE_10__[\"unique3\"]; });\n\n/* harmony import */ var _function_apply__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./function/apply */ \"./src/function/apply.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"apply\", function() { return _function_apply__WEBPACK_IMPORTED_MODULE_11__[\"apply\"]; });\n\n/* harmony import */ var _function_bind__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./function/bind */ \"./src/function/bind.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bind\", function() { return _function_bind__WEBPACK_IMPORTED_MODULE_12__[\"bind\"]; });\n\n/* harmony import */ var _function_call__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./function/call */ \"./src/function/call.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"call\", function() { return _function_call__WEBPACK_IMPORTED_MODULE_13__[\"call\"]; });\n\n/* harmony import */ var _function_debounce__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./function/debounce */ \"./src/function/debounce.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"debounce\", function() { return _function_debounce__WEBPACK_IMPORTED_MODULE_14__[\"debounce\"]; });\n\n/* harmony import */ var _function_throttle__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./function/throttle */ \"./src/function/throttle.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"throttle\", function() { return _function_throttle__WEBPACK_IMPORTED_MODULE_15__[\"throttle\"]; });\n\n/* harmony import */ var _object_clone__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./object/clone */ \"./src/object/clone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone1\", function() { return _object_clone__WEBPACK_IMPORTED_MODULE_16__[\"clone1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"clone2\", function() { return _object_clone__WEBPACK_IMPORTED_MODULE_16__[\"clone2\"]; });\n\n/* harmony import */ var _object_deepClone__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./object/deepClone */ \"./src/object/deepClone.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone1\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone1\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone2\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone2\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone3\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone3\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"deepClone4\", function() { return _object_deepClone__WEBPACK_IMPORTED_MODULE_17__[\"deepClone4\"]; });\n\n/* harmony import */ var _object_merge__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./object/merge */ \"./src/object/merge.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"mergeObject\", function() { return _object_merge__WEBPACK_IMPORTED_MODULE_18__[\"mergeObject\"]; });\n\n/* harmony import */ var _object_myInstanceOf__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./object/myInstanceOf */ \"./src/object/myInstanceOf.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"myInstanceOf\", function() { return _object_myInstanceOf__WEBPACK_IMPORTED_MODULE_19__[\"myInstanceOf\"]; });\n\n/* harmony import */ var _object_newInstance__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./object/newInstance */ \"./src/object/newInstance.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"newInstance\", function() { return _object_newInstance__WEBPACK_IMPORTED_MODULE_20__[\"newInstance\"]; });\n\n/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./string */ \"./src/string/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"reverseString\", function() { return _string__WEBPACK_IMPORTED_MODULE_21__[\"reverseString\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"palindrome\", function() { return _string__WEBPACK_IMPORTED_MODULE_21__[\"palindrome\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return _string__WEBPACK_IMPORTED_MODULE_21__[\"truncate\"]; });\n\n/* harmony import */ var _axios__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./axios */ \"./src/axios/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"axios\", function() { return _axios__WEBPACK_IMPORTED_MODULE_22__[\"default\"]; });\n\n/* harmony import */ var _event_bus__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./event-bus */ \"./src/event-bus/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"eventBus\", function() { return _event_bus__WEBPACK_IMPORTED_MODULE_23__[\"default\"]; });\n\n/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./promise */ \"./src/promise/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Promise\", function() { return _promise__WEBPACK_IMPORTED_MODULE_24__[\"default\"]; });\n\n/* harmony import */ var _pub_sub__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./pub-sub */ \"./src/pub-sub/index.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"PubSub\", function() { return _pub_sub__WEBPACK_IMPORTED_MODULE_25__[\"default\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://codyUtils/./src/index.js?");
324
324
 
325
325
  /***/ }),
326
326
 
@@ -332,7 +332,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _arr
332
332
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
333
333
 
334
334
  "use strict";
335
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clone1\", function() { return clone1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clone2\", function() { return clone2; });\n/* \n实现浅拷贝\n 方法一: 利用ES6语法\n 方法二: 利用ES5语法: for...in\n*/\n/* 方法一: 利用ES6语法*/\nfunction clone1(target) {\n if (target instanceof Array) {\n // return target.slice()\n // return target.filter(() => true)\n // return target.map(item => item)\n return [...target]\n } else if (target instanceof Object){\n // return Object.assign({}, target)\n return {...target}\n } else {\n return target\n }\n} \n\n/* 方法二: 利用ES5语法: for...in */\nfunction clone2(target) {\n if (target!=null && typeof target==='object') {\n const cloneTarget = Array.isArray(target) ? [] : {}\n for (let key in target) {\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = target[key]\n }\n }\n return cloneTarget\n } else {\n return target\n }\n}\n\n\n//# sourceURL=webpack://cUtils/./src/object/clone.js?");
335
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clone1\", function() { return clone1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clone2\", function() { return clone2; });\n/* \n实现浅拷贝\n 方法一: 利用ES6语法\n 方法二: 利用ES5语法: for...in\n*/\n/* 方法一: 利用ES6语法*/\nfunction clone1(target) {\n if (target instanceof Array) {\n // return target.slice()\n // return target.filter(() => true)\n // return target.map(item => item)\n return [...target]\n } else if (target instanceof Object){\n // return Object.assign({}, target)\n return {...target}\n } else {\n return target\n }\n} \n\n/* 方法二: 利用ES5语法: for...in */\nfunction clone2(target) {\n if (target!=null && typeof target==='object') {\n const cloneTarget = Array.isArray(target) ? [] : {}\n for (let key in target) {\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = target[key]\n }\n }\n return cloneTarget\n } else {\n return target\n }\n}\n\n\n//# sourceURL=webpack://codyUtils/./src/object/clone.js?");
336
336
 
337
337
  /***/ }),
338
338
 
@@ -344,7 +344,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
344
344
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
345
345
 
346
346
  "use strict";
347
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone1\", function() { return deepClone1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone2\", function() { return deepClone2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone3\", function() { return deepClone3; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone4\", function() { return deepClone4; });\n/* \n深度克隆\n1). 大众乞丐版\n 问题1: 函数属性会丢失\n 问题2: 循环引用会出错\n2). 面试基础版本\n 解决问题1: 函数属性还没丢失\n3). 面试加强版本\n 解决问题2: 循环引用正常\n4). 面试加强版本2(优化遍历性能)\n 数组: while | for | forEach() 优于 for-in | keys()&forEach() \n 对象: for-in 与 keys()&forEach() 差不多\n*/\n/* \n1). 大众乞丐版\n 问题1: 函数属性会丢失\n 问题2: 循环引用会出错\n*/\nfunction deepClone1(target) {\n return JSON.parse(JSON.stringify(target))\n}\n\n/* \n获取数据的类型字符串名\n*/\nfunction getType(data) {\n return Object.prototype.toString.call(data).slice(8, -1)\n}\n\n/*\n2). 面试基础版本\n 解决问题1: 函数属性还没丢失\n*/\nfunction deepClone2(target) {\n const type = getType(target)\n\n if (type==='Object' || type==='Array') {\n const cloneTarget = type === 'Array' ? [] : {}\n for (const key in target) {\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = deepClone2(target[key])\n }\n }\n return cloneTarget\n } else {\n return target\n }\n}\n\n/* \n3). 面试加强版本\n 解决问题2: 循环引用正常\n*/\nfunction deepClone3(target, map = new Map()) {\n const type = getType(target)\n if (type==='Object' || type==='Array') {\n let cloneTarget = map.get(target)\n if (cloneTarget) {\n return cloneTarget\n }\n cloneTarget = type==='Array' ? [] : {}\n map.set(target, cloneTarget)\n for (const key in target) {\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = deepClone3(target[key], map)\n }\n }\n return cloneTarget\n } else {\n return target\n }\n}\n\n/* \n4). 面试加强版本2(优化遍历性能)\n 数组: while | for | forEach() 优于 for-in | keys()&forEach() \n 对象: for-in 与 keys()&forEach() 差不多\n*/\nfunction deepClone4(target, map = new Map()) {\n const type = getType(target)\n if (type==='Object' || type==='Array') {\n let cloneTarget = map.get(target)\n if (cloneTarget) {\n return cloneTarget\n }\n\n if (type==='Array') {\n cloneTarget = []\n map.set(target, cloneTarget)\n target.forEach((item, index) => {\n cloneTarget[index] = deepClone4(item, map)\n })\n } else {\n cloneTarget = {}\n map.set(target, cloneTarget)\n Object.keys(target).forEach(key => {\n cloneTarget[key] = deepClone4(target[key], map)\n })\n }\n\n return cloneTarget\n } else {\n return target\n }\n}\n\n//# sourceURL=webpack://cUtils/./src/object/deepClone.js?");
347
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone1\", function() { return deepClone1; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone2\", function() { return deepClone2; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone3\", function() { return deepClone3; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deepClone4\", function() { return deepClone4; });\n/* \n深度克隆\n1). 大众乞丐版\n 问题1: 函数属性会丢失\n 问题2: 循环引用会出错\n2). 面试基础版本\n 解决问题1: 函数属性还没丢失\n3). 面试加强版本\n 解决问题2: 循环引用正常\n4). 面试加强版本2(优化遍历性能)\n 数组: while | for | forEach() 优于 for-in | keys()&forEach() \n 对象: for-in 与 keys()&forEach() 差不多\n*/\n/* \n1). 大众乞丐版\n 问题1: 函数属性会丢失\n 问题2: 循环引用会出错\n*/\nfunction deepClone1(target) {\n return JSON.parse(JSON.stringify(target))\n}\n\n/* \n获取数据的类型字符串名\n*/\nfunction getType(data) {\n return Object.prototype.toString.call(data).slice(8, -1)\n}\n\n/*\n2). 面试基础版本\n 解决问题1: 函数属性还没丢失\n*/\nfunction deepClone2(target) {\n const type = getType(target)\n\n if (type==='Object' || type==='Array') {\n const cloneTarget = type === 'Array' ? [] : {}\n for (const key in target) {\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = deepClone2(target[key])\n }\n }\n return cloneTarget\n } else {\n return target\n }\n}\n\n/* \n3). 面试加强版本\n 解决问题2: 循环引用正常\n*/\nfunction deepClone3(target, map = new Map()) {\n const type = getType(target)\n if (type==='Object' || type==='Array') {\n let cloneTarget = map.get(target)\n if (cloneTarget) {\n return cloneTarget\n }\n cloneTarget = type==='Array' ? [] : {}\n map.set(target, cloneTarget)\n for (const key in target) {\n if (target.hasOwnProperty(key)) {\n cloneTarget[key] = deepClone3(target[key], map)\n }\n }\n return cloneTarget\n } else {\n return target\n }\n}\n\n/* \n4). 面试加强版本2(优化遍历性能)\n 数组: while | for | forEach() 优于 for-in | keys()&forEach() \n 对象: for-in 与 keys()&forEach() 差不多\n*/\nfunction deepClone4(target, map = new Map()) {\n const type = getType(target)\n if (type==='Object' || type==='Array') {\n let cloneTarget = map.get(target)\n if (cloneTarget) {\n return cloneTarget\n }\n\n if (type==='Array') {\n cloneTarget = []\n map.set(target, cloneTarget)\n target.forEach((item, index) => {\n cloneTarget[index] = deepClone4(item, map)\n })\n } else {\n cloneTarget = {}\n map.set(target, cloneTarget)\n Object.keys(target).forEach(key => {\n cloneTarget[key] = deepClone4(target[key], map)\n })\n }\n\n return cloneTarget\n } else {\n return target\n }\n}\n\n//# sourceURL=webpack://codyUtils/./src/object/deepClone.js?");
348
348
 
349
349
  /***/ }),
350
350
 
@@ -356,7 +356,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
356
356
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
357
357
 
358
358
  "use strict";
359
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeObject\", function() { return mergeObject; });\n/* \nmerge(...objs): 合并多个对象, 返回一个合并后对象(不改变原对象)\n{ a: [{ x: 2 }, { y: 4 }], b: 1}\n{ a: { z: 3}, b: [2, 3], c: 'foo'}\n合并后: { a: [ { x: 2 }, { y: 4 }, { z: 3 } ], b: [ 1, 2, 3 ], c: 'foo' }\n*/\nfunction mergeObject(...objs) {\n return objs.reduce((pre, obj) => {\n return Object.keys(obj).reduce((p, key) => {\n p[key] = !p.hasOwnProperty(key) ? obj[key] : [].concat(p[key], obj[key])\n return p\n }, pre)\n }, {})\n}\n\n//# sourceURL=webpack://cUtils/./src/object/merge.js?");
359
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeObject\", function() { return mergeObject; });\n/* \nmerge(...objs): 合并多个对象, 返回一个合并后对象(不改变原对象)\n{ a: [{ x: 2 }, { y: 4 }], b: 1}\n{ a: { z: 3}, b: [2, 3], c: 'foo'}\n合并后: { a: [ { x: 2 }, { y: 4 }, { z: 3 } ], b: [ 1, 2, 3 ], c: 'foo' }\n*/\nfunction mergeObject(...objs) {\n return objs.reduce((pre, obj) => {\n return Object.keys(obj).reduce((p, key) => {\n p[key] = !p.hasOwnProperty(key) ? obj[key] : [].concat(p[key], obj[key])\n return p\n }, pre)\n }, {})\n}\n\n//# sourceURL=webpack://codyUtils/./src/object/merge.js?");
360
360
 
361
361
  /***/ }),
362
362
 
@@ -368,7 +368,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
368
368
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
369
369
 
370
370
  "use strict";
371
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"myInstanceOf\", function() { return myInstanceOf; });\n/* \n自定义instanceof工具函数: \n 语法: myInstanceOf(obj, Type)\n 功能: 判断obj是否是Type类型的实例\n 实现: Type的原型对象是否是obj的原型链上的某个对象, 如果是返回true, 否则返回false\n*/\nfunction myInstanceOf(obj, Type) {\n // 得到原型对象\n let protoObj = obj.__proto__\n\n // 只要原型对象存在\n while(protoObj) {\n // 如果原型对象是Type的原型对象, 返回true\n if (protoObj === Type.prototype) {\n return true\n }\n // 指定原型对象的原型对象\n protoObj = protoObj.__proto__\n }\n\n return false\n}\n\n//# sourceURL=webpack://cUtils/./src/object/myInstanceOf.js?");
371
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"myInstanceOf\", function() { return myInstanceOf; });\n/* \n自定义instanceof工具函数: \n 语法: myInstanceOf(obj, Type)\n 功能: 判断obj是否是Type类型的实例\n 实现: Type的原型对象是否是obj的原型链上的某个对象, 如果是返回true, 否则返回false\n*/\nfunction myInstanceOf(obj, Type) {\n // 得到原型对象\n let protoObj = obj.__proto__\n\n // 只要原型对象存在\n while(protoObj) {\n // 如果原型对象是Type的原型对象, 返回true\n if (protoObj === Type.prototype) {\n return true\n }\n // 指定原型对象的原型对象\n protoObj = protoObj.__proto__\n }\n\n return false\n}\n\n//# sourceURL=webpack://codyUtils/./src/object/myInstanceOf.js?");
372
372
 
373
373
  /***/ }),
374
374
 
@@ -380,7 +380,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
380
380
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
381
381
 
382
382
  "use strict";
383
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"newInstance\", function() { return newInstance; });\n/* \n自定义new工具函数\n 语法: newInstance(Fn, ...args)\n 功能: 创建Fn构造函数的实例对象\n 实现: 创建空对象obj, 调用Fn指定this为obj, 返回obj\n*/\nfunction newInstance(Fn, ...args) {\n // 创建一个新的对象\n const obj = {}\n // 执行构造函数\n const result = Fn.apply(obj, args) // 相当于: obj.Fn()\n // 如果构造函数执行的结果是对象, 返回这个对象\n if (result instanceof Object) {\n return result\n }\n // 如果不是, 返回新创建的对象\n obj.__proto__.constructor = Fn // 让原型对象的构造器属性指向Fn\n \n return obj\n}\n\n//# sourceURL=webpack://cUtils/./src/object/newInstance.js?");
383
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"newInstance\", function() { return newInstance; });\n/* \n自定义new工具函数\n 语法: newInstance(Fn, ...args)\n 功能: 创建Fn构造函数的实例对象\n 实现: 创建空对象obj, 调用Fn指定this为obj, 返回obj\n*/\nfunction newInstance(Fn, ...args) {\n // 创建一个新的对象\n const obj = {}\n // 执行构造函数\n const result = Fn.apply(obj, args) // 相当于: obj.Fn()\n // 如果构造函数执行的结果是对象, 返回这个对象\n if (result instanceof Object) {\n return result\n }\n // 如果不是, 返回新创建的对象\n obj.__proto__.constructor = Fn // 让原型对象的构造器属性指向Fn\n \n return obj\n}\n\n//# sourceURL=webpack://codyUtils/./src/object/newInstance.js?");
384
384
 
385
385
  /***/ }),
386
386
 
@@ -392,7 +392,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
392
392
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
393
393
 
394
394
  "use strict";
395
- eval("__webpack_require__.r(__webpack_exports__);\nconst PENDING = 'pending' // 初始未确定的状态\nconst RESOLVED = 'resolved' // 成功的状态\nconst REJECTED = 'rejected' // 失败的状态\n\n/* \nPromise构造函数\n*/\nfunction Promise(excutor) {\n\n const self = this // Promise的实例对象\n self.status = PENDING // 状态属性, 初始值为pending, 代表初始未确定的状态\n self.data = undefined // 用来存储结果数据的属性, 初始值为undefined\n self.callbacks = [] // {onResolved(){}, onRejected(){}}\n\n /* \n 将promise的状态改为成功, 指定成功的value\n */\n function resolve(value) {\n // 如果当前不是pending, 直接结束\n if (self.status !== PENDING) return\n\n self.status = RESOLVED // 将状态改为成功\n self.data = value // 保存成功的value\n\n // 异步调用所有缓存的待执行成功的回调函数\n if (self.callbacks.length > 0) {\n // 启动一个延迟时间为0的定时器, 在定时器的回调中执行所有成功的回调\n setTimeout(() => {\n self.callbacks.forEach(cbsObj => {\n cbsObj.onResolved(value)\n })\n })\n }\n }\n\n /* \n 将promise的状态改为失败, 指定失败的reason\n */\n function reject(reason) {\n // 如果当前不是pending, 直接结束\n if (self.status !== PENDING) return\n\n self.status = REJECTED // 将状态改为失败\n self.data = reason // 保存reason数据\n\n // 异步调用所有缓存的待执行失败的回调函数\n if (self.callbacks.length > 0) {\n // 启动一个延迟时间为0的定时器, 在定时器的回调中执行所有失败的回调\n setTimeout(() => {\n self.callbacks.forEach(cbsObj => {\n cbsObj.onRejected(reason)\n })\n })\n }\n }\n\n // 调用excutor来启动异步任务\n try {\n excutor(resolve, reject)\n } catch (error) { // 执行器执行出错, 当前promise变为失败\n console.log('-----')\n reject(error)\n }\n\n}\n\n/* \n用来指定成功/失败回调函数的方法\n 1). 如果当前promise是resolved, 异步执行成功的回调函数onResolved\n 2). 如果当前promise是rejected, 异步执行成功的回调函数onRejected\n 3). 如果当前promise是pending, 保存回调函数\n返回一个新的promise对象\n 它的结果状态由onResolved或者onRejected执行的结果决定\n 2.1). 抛出error ==> 变为rejected, 结果值为error\n 2.2). 返回值不是promise ==> 变为resolved, 结果值为返回值\n 2.3). 返回值是promise ===> 由这个promise的决定新的promise的结果(成功/失败)\n*/\nPromise.prototype.then = function (onResolved, onRejected) {\n const self = this\n\n onResolved = typeof onResolved === 'function' ? onResolved : value => value // 将value向下传递\n onRejected = typeof onRejected === 'function' ? onRejected : reason => {\n throw reason\n } // 将reason向下传递\n\n return new Promise((resolve, reject) => { // 什么时候改变它的状态\n\n /* \n 1. 调用指定的回调函数\n 2. 根据回调执行结果来更新返回promise的状态\n */\n function handle(callback) {\n try {\n const result = callback(self.data)\n if (!(result instanceof Promise)) { // 2.2). 返回值不是promise ==> 变为resolved, 结果值为返回值\n resolve(result)\n } else { // 2.3). 返回值是promise ===> 由这个promise的决定新的promise的结果(成功/失败)\n result.then(\n value => resolve(value),\n reason => reject(reason)\n )\n // result.then(resolve, reject)\n }\n } catch (error) { // 2.1). 抛出error ==> 变为rejected, 结果值为error\n reject(error)\n }\n }\n\n if (self.status === RESOLVED) {\n setTimeout(() => {\n handle(onResolved)\n })\n } else if (self.status === REJECTED) {\n setTimeout(() => {\n handle(onRejected)\n })\n } else { // PENDING\n self.callbacks.push({\n onResolved(value) {\n handle(onResolved)\n },\n onRejected(reason) {\n handle(onRejected)\n }\n })\n }\n })\n}\n\n/* \n用来指定失败回调函数的方法\ncatch是then的语法糖\n*/\nPromise.prototype.catch = function (onRejected) {\n return this.then(undefined, onRejected)\n}\n\n/* \n用来返回一个指定vlaue的成功的promise\nvalue可能是一个一般的值, 也可能是promise对象\n*/\nPromise.resolve = function (value) {\n return new Promise((resolve, reject) => {\n // 如果value是一个promise, 最终返回的promise的结果由value决定\n if (value instanceof Promise) {\n value.then(resolve, reject)\n } else { // value不是promise, 返回的是成功的promise, 成功的值就是value\n resolve(value)\n }\n })\n}\n\n/* \n用来返回一个指定reason的失败的promise\n*/\nPromise.reject = function (reason) {\n return new Promise((resolve, reject) => {\n reject(reason)\n })\n}\n\n/* \n返回一个promise, 只有当数组中所有promise都成功才成功, 否则失败\n*/\nPromise.all = function (promises) {\n return new Promise((resolve, reject) => {\n\n let resolvedCount = 0 // 已经成功的数量 \n const values = new Array(promises.length) // 用来保存成功promise的value值\n // 遍历所有promise, 取其对应的结果\n promises.forEach((p, index) => {\n p.then(\n value => {\n resolvedCount++\n values[index] = value\n if (resolvedCount === promises.length) { // 都成功了\n resolve(values)\n }\n },\n reason => reject(reason)\n )\n })\n })\n}\n\n/* \n返回一个promise, 由第一个完成promise决定\n*/\nPromise.race = function (promises) {\n return new Promise((resolve, reject) => {\n // 遍历所有promise, 取其对应的结果\n promises.forEach(p => {\n // 返回的promise由第一个完成p来决定其结果\n p.then(resolve, reject)\n })\n })\n}\n\n/* \n返回一个延迟指定时间才成功(也可能失败)的promise\n*/\nPromise.resolveDelay = function (value, time) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n // 如果value是一个promise, 最终返回的promise的结果由value决定\n if (value instanceof Promise) {\n value.then(resolve, reject)\n } else { // value不是promise, 返回的是成功的promise, 成功的值就是value\n resolve(value)\n }\n }, time)\n })\n}\n\n/* \n返回一个延迟指定时间才失败的promise\n*/\nPromise.rejectDelay = function (reason, time) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(reason)\n }, time)\n })\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Promise);\n\n//# sourceURL=webpack://cUtils/./src/promise/index.js?");
395
+ eval("__webpack_require__.r(__webpack_exports__);\nconst PENDING = 'pending' // 初始未确定的状态\nconst RESOLVED = 'resolved' // 成功的状态\nconst REJECTED = 'rejected' // 失败的状态\n\n/* \nPromise构造函数\n*/\nfunction Promise(excutor) {\n\n const self = this // Promise的实例对象\n self.status = PENDING // 状态属性, 初始值为pending, 代表初始未确定的状态\n self.data = undefined // 用来存储结果数据的属性, 初始值为undefined\n self.callbacks = [] // {onResolved(){}, onRejected(){}}\n\n /* \n 将promise的状态改为成功, 指定成功的value\n */\n function resolve(value) {\n // 如果当前不是pending, 直接结束\n if (self.status !== PENDING) return\n\n self.status = RESOLVED // 将状态改为成功\n self.data = value // 保存成功的value\n\n // 异步调用所有缓存的待执行成功的回调函数\n if (self.callbacks.length > 0) {\n // 启动一个延迟时间为0的定时器, 在定时器的回调中执行所有成功的回调\n setTimeout(() => {\n self.callbacks.forEach(cbsObj => {\n cbsObj.onResolved(value)\n })\n })\n }\n }\n\n /* \n 将promise的状态改为失败, 指定失败的reason\n */\n function reject(reason) {\n // 如果当前不是pending, 直接结束\n if (self.status !== PENDING) return\n\n self.status = REJECTED // 将状态改为失败\n self.data = reason // 保存reason数据\n\n // 异步调用所有缓存的待执行失败的回调函数\n if (self.callbacks.length > 0) {\n // 启动一个延迟时间为0的定时器, 在定时器的回调中执行所有失败的回调\n setTimeout(() => {\n self.callbacks.forEach(cbsObj => {\n cbsObj.onRejected(reason)\n })\n })\n }\n }\n\n // 调用excutor来启动异步任务\n try {\n excutor(resolve, reject)\n } catch (error) { // 执行器执行出错, 当前promise变为失败\n console.log('-----')\n reject(error)\n }\n\n}\n\n/* \n用来指定成功/失败回调函数的方法\n 1). 如果当前promise是resolved, 异步执行成功的回调函数onResolved\n 2). 如果当前promise是rejected, 异步执行成功的回调函数onRejected\n 3). 如果当前promise是pending, 保存回调函数\n返回一个新的promise对象\n 它的结果状态由onResolved或者onRejected执行的结果决定\n 2.1). 抛出error ==> 变为rejected, 结果值为error\n 2.2). 返回值不是promise ==> 变为resolved, 结果值为返回值\n 2.3). 返回值是promise ===> 由这个promise的决定新的promise的结果(成功/失败)\n*/\nPromise.prototype.then = function (onResolved, onRejected) {\n const self = this\n\n onResolved = typeof onResolved === 'function' ? onResolved : value => value // 将value向下传递\n onRejected = typeof onRejected === 'function' ? onRejected : reason => {\n throw reason\n } // 将reason向下传递\n\n return new Promise((resolve, reject) => { // 什么时候改变它的状态\n\n /* \n 1. 调用指定的回调函数\n 2. 根据回调执行结果来更新返回promise的状态\n */\n function handle(callback) {\n try {\n const result = callback(self.data)\n if (!(result instanceof Promise)) { // 2.2). 返回值不是promise ==> 变为resolved, 结果值为返回值\n resolve(result)\n } else { // 2.3). 返回值是promise ===> 由这个promise的决定新的promise的结果(成功/失败)\n result.then(\n value => resolve(value),\n reason => reject(reason)\n )\n // result.then(resolve, reject)\n }\n } catch (error) { // 2.1). 抛出error ==> 变为rejected, 结果值为error\n reject(error)\n }\n }\n\n if (self.status === RESOLVED) {\n setTimeout(() => {\n handle(onResolved)\n })\n } else if (self.status === REJECTED) {\n setTimeout(() => {\n handle(onRejected)\n })\n } else { // PENDING\n self.callbacks.push({\n onResolved(value) {\n handle(onResolved)\n },\n onRejected(reason) {\n handle(onRejected)\n }\n })\n }\n })\n}\n\n/* \n用来指定失败回调函数的方法\ncatch是then的语法糖\n*/\nPromise.prototype.catch = function (onRejected) {\n return this.then(undefined, onRejected)\n}\n\n/* \n用来返回一个指定vlaue的成功的promise\nvalue可能是一个一般的值, 也可能是promise对象\n*/\nPromise.resolve = function (value) {\n return new Promise((resolve, reject) => {\n // 如果value是一个promise, 最终返回的promise的结果由value决定\n if (value instanceof Promise) {\n value.then(resolve, reject)\n } else { // value不是promise, 返回的是成功的promise, 成功的值就是value\n resolve(value)\n }\n })\n}\n\n/* \n用来返回一个指定reason的失败的promise\n*/\nPromise.reject = function (reason) {\n return new Promise((resolve, reject) => {\n reject(reason)\n })\n}\n\n/* \n返回一个promise, 只有当数组中所有promise都成功才成功, 否则失败\n*/\nPromise.all = function (promises) {\n return new Promise((resolve, reject) => {\n\n let resolvedCount = 0 // 已经成功的数量 \n const values = new Array(promises.length) // 用来保存成功promise的value值\n // 遍历所有promise, 取其对应的结果\n promises.forEach((p, index) => {\n p.then(\n value => {\n resolvedCount++\n values[index] = value\n if (resolvedCount === promises.length) { // 都成功了\n resolve(values)\n }\n },\n reason => reject(reason)\n )\n })\n })\n}\n\n/* \n返回一个promise, 由第一个完成promise决定\n*/\nPromise.race = function (promises) {\n return new Promise((resolve, reject) => {\n // 遍历所有promise, 取其对应的结果\n promises.forEach(p => {\n // 返回的promise由第一个完成p来决定其结果\n p.then(resolve, reject)\n })\n })\n}\n\n/* \n返回一个延迟指定时间才成功(也可能失败)的promise\n*/\nPromise.resolveDelay = function (value, time) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n // 如果value是一个promise, 最终返回的promise的结果由value决定\n if (value instanceof Promise) {\n value.then(resolve, reject)\n } else { // value不是promise, 返回的是成功的promise, 成功的值就是value\n resolve(value)\n }\n }, time)\n })\n}\n\n/* \n返回一个延迟指定时间才失败的promise\n*/\nPromise.rejectDelay = function (reason, time) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(reason)\n }, time)\n })\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Promise);\n\n//# sourceURL=webpack://codyUtils/./src/promise/index.js?");
396
396
 
397
397
  /***/ }),
398
398
 
@@ -404,7 +404,7 @@ eval("__webpack_require__.r(__webpack_exports__);\nconst PENDING = 'pending' //
404
404
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
405
405
 
406
406
  "use strict";
407
- eval("__webpack_require__.r(__webpack_exports__);\n/* \n自定义消息订阅与发布\n*/\n\nconst PubSub = {}\n/* \n {\n add: {\n token1: callback1, \n token2: callback2\n },\n update: {\n token3: callback3\n }\n }\n*/\nlet callbacksObj = {} // 保存所有回调的容器\nlet id = 0 // 用于生成token的标记\n\n// 1. 订阅消息\nPubSub.subscribe = function (msgName, callback) {\n\n // 确定token\n const token = 'token_' + ++id\n // 取出当前消息对应的callbacks\n const callbacks = callbacksObj[msgName]\n if (!callbacks) {\n callbacksObj[msgName] = {\n [token]: callback\n }\n } else {\n callbacks[token] = callback\n }\n // 返回token\n return token\n}\n\n\n// 2. 发布异步的消息\nPubSub.publish = function (msgName, data) {\n // 取出当前消息对应的callbacks\n let callbacks = callbacksObj[msgName]\n // 如果有值\n if (callbacks) {\n // callbacks = Object.assign({}, callbacks)\n // 启动定时器, 异步执行所有的回调函数\n setTimeout(() => {\n Object.values(callbacks).forEach(callback => {\n callback(data)\n })\n }, 0)\n }\n}\n\n// 3. 发布同步的消息\nPubSub.publishSync = function (msgName, data) {\n // 取出当前消息对应的callbacks\n const callbacks = callbacksObj[msgName]\n // 如果有值\n if (callbacks) {\n // 立即同步执行所有的回调函数\n Object.values(callbacks).forEach(callback => {\n callback(data)\n })\n }\n}\n\n/*\n4. 取消消息订阅\n 1). 没有传值, flag为undefined\n 2). 传入token字符串\n 3). msgName字符串\n*/\nPubSub.unsubscribe = function (flag) {\n // 如果flag没有指定或者为null, 取消所有\n if (flag === undefined) {\n callbacksObj = {}\n } else if (typeof flag === 'string') {\n if (flag.indexOf('token_') === 0) { // flag是token\n // 找到flag对应的callbacks\n const callbacks = Object.values(callbacksObj).find(callbacks => callbacks.hasOwnProperty(flag))\n // 如果存在, 删除对应的属性\n if (callbacks) {\n delete callbacks[flag]\n }\n } else { // flag是msgName\n delete callbacksObj[flag]\n }\n\n } else {\n throw new Error('如果传入参数, 必须是字符串类型')\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (PubSub);\n\n//# sourceURL=webpack://cUtils/./src/pub-sub/index.js?");
407
+ eval("__webpack_require__.r(__webpack_exports__);\n/* \n自定义消息订阅与发布\n*/\n\nconst PubSub = {}\n/* \n {\n add: {\n token1: callback1, \n token2: callback2\n },\n update: {\n token3: callback3\n }\n }\n*/\nlet callbacksObj = {} // 保存所有回调的容器\nlet id = 0 // 用于生成token的标记\n\n// 1. 订阅消息\nPubSub.subscribe = function (msgName, callback) {\n\n // 确定token\n const token = 'token_' + ++id\n // 取出当前消息对应的callbacks\n const callbacks = callbacksObj[msgName]\n if (!callbacks) {\n callbacksObj[msgName] = {\n [token]: callback\n }\n } else {\n callbacks[token] = callback\n }\n // 返回token\n return token\n}\n\n\n// 2. 发布异步的消息\nPubSub.publish = function (msgName, data) {\n // 取出当前消息对应的callbacks\n let callbacks = callbacksObj[msgName]\n // 如果有值\n if (callbacks) {\n // callbacks = Object.assign({}, callbacks)\n // 启动定时器, 异步执行所有的回调函数\n setTimeout(() => {\n Object.values(callbacks).forEach(callback => {\n callback(data)\n })\n }, 0)\n }\n}\n\n// 3. 发布同步的消息\nPubSub.publishSync = function (msgName, data) {\n // 取出当前消息对应的callbacks\n const callbacks = callbacksObj[msgName]\n // 如果有值\n if (callbacks) {\n // 立即同步执行所有的回调函数\n Object.values(callbacks).forEach(callback => {\n callback(data)\n })\n }\n}\n\n/*\n4. 取消消息订阅\n 1). 没有传值, flag为undefined\n 2). 传入token字符串\n 3). msgName字符串\n*/\nPubSub.unsubscribe = function (flag) {\n // 如果flag没有指定或者为null, 取消所有\n if (flag === undefined) {\n callbacksObj = {}\n } else if (typeof flag === 'string') {\n if (flag.indexOf('token_') === 0) { // flag是token\n // 找到flag对应的callbacks\n const callbacks = Object.values(callbacksObj).find(callbacks => callbacks.hasOwnProperty(flag))\n // 如果存在, 删除对应的属性\n if (callbacks) {\n delete callbacks[flag]\n }\n } else { // flag是msgName\n delete callbacksObj[flag]\n }\n\n } else {\n throw new Error('如果传入参数, 必须是字符串类型')\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (PubSub);\n\n//# sourceURL=webpack://codyUtils/./src/pub-sub/index.js?");
408
408
 
409
409
  /***/ }),
410
410
 
@@ -416,7 +416,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* \n自定义消息订阅与
416
416
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
417
417
 
418
418
  "use strict";
419
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reverseString\", function() { return reverseString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"palindrome\", function() { return palindrome; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* \n1. 字符串倒序: reverseString(str) 生成一个倒序的字符串\n2. 字符串是否是回文: palindrome(str) 如果给定的字符串是回文,则返回 true ;否则返回 false\n3. 截取字符串: truncate(str, num) 如果字符串的长度超过了num, 截取前面num长度部分, 并以...结束\n*/\n\n/* \n1. 字符串倒序: reverseString(str) 生成一个倒序的字符串\n*/\nfunction reverseString(str) {\n // return str.split('').reverse().join('')\n // return [...str].reverse().join('')\n return Array.from(str).reverse().join('')\n}\n\n/* \n2. 字符串是否是回文: palindrome(str) 如果给定的字符串是回文,则返回 true ;否则返回 false\n*/\nfunction palindrome(str) {\n return str === reverseString(str)\n}\n\n/* \n3. 截取字符串: truncate(str, num) 如果字符串的长度超过了num, 截取前面num长度部分, 并以...结束\n*/\nfunction truncate(str, num) {\n return str.length > num ? str.slice(0, num) + '...' : str\n}\n\n//# sourceURL=webpack://cUtils/./src/string/index.js?");
419
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"reverseString\", function() { return reverseString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"palindrome\", function() { return palindrome; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"truncate\", function() { return truncate; });\n/* \n1. 字符串倒序: reverseString(str) 生成一个倒序的字符串\n2. 字符串是否是回文: palindrome(str) 如果给定的字符串是回文,则返回 true ;否则返回 false\n3. 截取字符串: truncate(str, num) 如果字符串的长度超过了num, 截取前面num长度部分, 并以...结束\n*/\n\n/* \n1. 字符串倒序: reverseString(str) 生成一个倒序的字符串\n*/\nfunction reverseString(str) {\n // return str.split('').reverse().join('')\n // return [...str].reverse().join('')\n return Array.from(str).reverse().join('')\n}\n\n/* \n2. 字符串是否是回文: palindrome(str) 如果给定的字符串是回文,则返回 true ;否则返回 false\n*/\nfunction palindrome(str) {\n return str === reverseString(str)\n}\n\n/* \n3. 截取字符串: truncate(str, num) 如果字符串的长度超过了num, 截取前面num长度部分, 并以...结束\n*/\nfunction truncate(str, num) {\n return str.length > num ? str.slice(0, num) + '...' : str\n}\n\n//# sourceURL=webpack://codyUtils/./src/string/index.js?");
420
420
 
421
421
  /***/ }),
422
422
 
@@ -427,7 +427,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) *
427
427
  /*! no static exports found */
428
428
  /***/ (function(module, exports) {
429
429
 
430
- eval("module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__;\n\n//# sourceURL=webpack://cUtils/external_%7B%22commonjs%22:%22lodash%22,%22commonjs2%22:%22lodash%22,%22amd%22:%22lodash%22,%22root%22:%22_%22%7D?");
430
+ eval("module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__;\n\n//# sourceURL=webpack://codyUtils/external_%7B%22commonjs%22:%22lodash%22,%22commonjs2%22:%22lodash%22,%22amd%22:%22lodash%22,%22root%22:%22_%22%7D?");
431
431
 
432
432
  /***/ })
433
433
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cody-utils",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "author": "cody",
5
5
  "description": "大前端自定义工具函数库",
6
6
  "keywords": ["cody", "utils", "array", "object", "function", "promise", "axios", "数据结构", "算法"],
@@ -15,5 +15,11 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "lodash": "^4.17.15"
18
- }
18
+ },
19
+ "files": [
20
+ "src/",
21
+ "README.md",
22
+ "dist/",
23
+ "package.json"
24
+ ]
19
25
  }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "atguigu-utils",
3
- "version": "1.2.3",
4
- "author": "xfzhang",
5
- "description": "尚硅谷大前端自定义工具函数库",
6
- "keywords": ["atguigu", "utils", "array", "object", "function", "promise", "axios", "数据结构", "算法"],
7
- "main": "dist/atguigu-utils.js",
8
- "license": "MIT",
9
- "scripts": {
10
- "build": "webpack --watch"
11
- },
12
- "devDependencies": {
13
- "webpack": "^4.41.5",
14
- "webpack-cli": "^3.3.10"
15
- },
16
- "dependencies": {
17
- "lodash": "^4.17.15"
18
- }
19
- }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "atguigu-utils",
3
- "version": "1.20.1",
4
- "author": "xfzhang",
5
- "description": "尚硅谷大前端自定义工具函数库",
6
- "keywords": ["atguigu", "utils", "array", "object", "function", "promise", "axios", "数据结构", "算法"],
7
- "main": "dist/atguigu-utils.js",
8
- "license": "MIT",
9
- "scripts": {
10
- "build": "webpack --watch"
11
- },
12
- "devDependencies": {
13
- "webpack": "^4.41.5",
14
- "webpack-cli": "^3.3.10"
15
- },
16
- "dependencies": {
17
- "lodash": "^4.17.15"
18
- }
19
- }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "atguigu-utils",
3
- "version": "1.0.1",
4
- "author": "xfzhang",
5
- "description": "尚硅谷大前端自定义工具函数库",
6
- "keywords": ["atguigu", "utils", "array", "object", "function", "promise", "axios", "数据结构", "算法"],
7
- "main": "dist/atguigu-utils.js",
8
- "license": "MIT",
9
- "scripts": {
10
- "build": "webpack --watch"
11
- },
12
- "devDependencies": {
13
- "webpack": "^4.41.5",
14
- "webpack-cli": "^3.3.10"
15
- },
16
- "dependencies": {
17
- "lodash": "^4.17.15"
18
- }
19
- }