{"id":19840399,"url":"https://github.com/heyui/hey-utils","last_synced_at":"2025-05-01T19:30:40.498Z","repository":{"id":20269093,"uuid":"86442855","full_name":"heyui/hey-utils","owner":"heyui","description":"js-utils","archived":false,"fork":false,"pushed_at":"2022-12-30T18:15:22.000Z","size":146,"stargazers_count":23,"open_issues_count":5,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-30T18:02:31.592Z","etag":null,"topics":["js","utils"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heyui.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-28T09:45:44.000Z","updated_at":"2024-06-26T07:26:35.000Z","dependencies_parsed_at":"2023-01-13T20:52:42.612Z","dependency_job_id":null,"html_url":"https://github.com/heyui/hey-utils","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heyui%2Fhey-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heyui%2Fhey-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heyui%2Fhey-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heyui%2Fhey-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heyui","download_url":"https://codeload.github.com/heyui/hey-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251932565,"owners_count":21667168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["js","utils"],"created_at":"2024-11-12T12:26:45.982Z","updated_at":"2025-05-01T19:30:40.201Z","avatar_url":"https://github.com/heyui.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# hey-utils\n\n## 判断类型\n\n### isObject  \n### isArray  \n### isDate  \n### isNumber  \n### isString  \n### isBoolean  \n### isFunction  \n### isNull  \n### isPlainObject  \n\n\n## 数值计算\n替换js数学计算中产生的错误，比如：0.09999999 + 0.00000001\n\n### add(arg1, arg2)\n加法\n\n### sub(arg1, arg2)\n减法\n\n### mul(arg1, arg2)\n乘法\n\n### div(arg1, arg2)\n除法\n\n## 对象复制，合并，赋值\n\n### extend  \n用一个或多个其他对象来扩展一个对象，返回被扩展的对象。  \n如果第一个参数设置为true，则返回一个深层次的副本，递归地复制找到的任何对象。  \n否则的话，副本会与原对象共享结构。 未定义的属性将不会被复制，然而从对象的原型继承的属性将会被复制。  \n\n```js\n\nutils.extend({},{a:1},{b:2});\n//结果\n{\n  a:1,\n  b:2\n}\n```\n\n### freeze\n深度冻结对象\nObject.freeze的深度实现\n例：\u003ccode\u003eutils.freeze({a:1});\u003c/code\u003e\n\n### copy\n深度拷贝对象  \nObject.assign的深度实现\n例：\u003ccode\u003eutils.copy({a:1});\u003c/code\u003e\n\n### getKeyValue\n获取深度path的对象值\n```js\n  utils.getKeyValue({id:{v:'a'},b:2},\"id.v\");\n  //'a'\n  utils.getKeyValue({id:{v:['a','b']},b:2},\"id.v[1]\");\n  //'b'\n```\n\n### setKeyValue\n对深度path的对象赋值\n```js\n  utils.setKeyValue({id:{v:1},b:2}, 'id.v', 2);\n  //{id:{v:2},b:2}\n  utils.setKeyValue({id:{v:['a','b']},b:2}, \"id.v[1]\", 'c');\n  //{id:{v:['a','c']},b:2}\n```\n\n## toArray, toObject\n\n### toArray\n将object转换成array.   \n\u003ccode\u003etoArray(object,keyName,valueName)\u003c/code\u003e   \n例：  \n```js\n  utils.toArray({a:1,b:1},'key','value');\n\n  //结果\n  [{\n    key:'a',\n    value:1\n  },{\n    key:'b',\n    value:1\n  }]\n\n\n  utils.toArray({a:{b:2,d:4},b:{c:2,e:5}},'id');\n\n  //结果\n  [{\n    id:'a',\n    b:2,\n    d:4\n  },{\n    id:'b',\n    c:2,\n    e:5\n  }]\n\n```\n\n### toObject\n将array转换成object.  \n例：  \n```js\n  utils.toObject(['a','b','c']);\n\n  //结果\n  {\n    a:'a',\n    b:'b',\n    c:'c'\n  }\n\n  utils.toObject([{id:'a',b:2},{id:'b',b:2}],'id');\n\n  //结果\n  {\n    a:{\n      id:'a',\n      b:2\n    },\n    b:{\n      id:'b',\n      b:2\n    }\n  }\n\n\n  utils.toObject([{id:'a',b:2},{id:'b',b:2}],'id',true);\n\n  //结果\n  {\n    a:{\n      id:'a',\n      b:2,\n      count:0\n    },\n    b:{\n      id:'b',\n      b:2,\n      count:1\n    }\n  }\n```\n\n### saveLocal(name, value)\n保存本地localStorage\n\n### getLocal(name,type)\n获取本地localStorage，如果type=='json'，这转换出json对象。\n\n### getLocal2Json(name)\n获取本地localStorage，并转换出json对象。\n\n### removeLocal(name)\n删除本地localStorage。\n\n### saveCookie(name, value, domain, path, minSec)\n保存本地cookie，path默认为/，minSec默认无限\n\n### getCookie(name)\n保存获取cookie\n\n### clearCookie(domain, path)\n清除所有cookie\n\n### removeCookie(name, domain, path)\n删除cookie\n\n### toSimpleArray(data, key)\n获取对应的key数组\n\n### toggleValue(list, value)\n如果数组存在这个值，则删除，如果没有，则添加\n\n### padLeft(str, size)\n左边填充0\n\n### removeCookie(name, path)\n删除cookie，path默认为/\n\n### dictMapping({value, dict, connector, keyField='key', titleField='value'})\n\n```js\nlet a = [{ title: '选择0', key: 0 }, { title: '选择1', key: 'a1', other: '其他值' }, { title: '选择2', key: 'a2' }, { title: '选择3', key: 'a3' }];\n\nutils.dictMapping({value: 'a1', dict: a, titleField: 'title'})\n//'选择1'\nutils.dictMapping({value: ['a1', 'a2'], dict: a, titleField: 'title'})\n//'选择1, 选择2'\nutils.dictMapping({value: 'a1|a2', dict: a, titleField: 'title', connector: '|'})\n//'选择1, 选择2'\n```\n\n## uuid()\n生成唯一值\n\n## getURLParam(path, search)\n获取url参数，例：aa.com?a=1  \n```js\nutils.getURLParam('a', window.location.search)  //1\n```\n\n## getAuthor\n获取author, 配合umock系统","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheyui%2Fhey-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheyui%2Fhey-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheyui%2Fhey-utils/lists"}