From 3e9d1093f8c35d6545fbbb49ae575a704eff4530 Mon Sep 17 00:00:00 2001 From: sw_pc Date: Thu, 16 Nov 2023 21:19:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=90=8D=E7=A7=B0=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 8 ++++- package.json | 8 +++-- utils/js/object.js | 70 ++++++++++++++++++++++++++++++++++++++++++ utils/test/js/index.js | 23 ++++++++++++++ 4 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 utils/js/object.js create mode 100644 utils/test/js/index.js diff --git a/package-lock.json b/package-lock.json index 8ba84e9..0373505 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "leaflet": "^1.9.4" + "leaflet": "^1.9.4", + "lodash": "^4.17.21" }, "devDependencies": { "live-server": "^1.2.2" @@ -1008,6 +1009,11 @@ "node": ">=0.10.0" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz", diff --git a/package.json b/package.json index e1c658e..8bd5a9e 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,12 @@ "version": "1.0.0", "description": "just 4 learn", "main": "index.js", + "type": "module", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev": "live-server ./leaflet" + "dev": "live-server ./leaflet", + "===": "test", + "test_js": "node ./utils/test/js/index.js" }, "keywords": [ "study" @@ -13,7 +16,8 @@ "author": "yemao", "license": "ISC", "dependencies": { - "leaflet": "^1.9.4" + "leaflet": "^1.9.4", + "lodash": "^4.17.21" }, "devDependencies": { "live-server": "^1.2.2" diff --git a/utils/js/object.js b/utils/js/object.js new file mode 100644 index 0000000..fa96519 --- /dev/null +++ b/utils/js/object.js @@ -0,0 +1,70 @@ +/* +1. 转换测试 +2. 编写函数 +3. 单元测试 +*/ + +import _ from 'lodash' + +function snakeCaseObject(originObj) { + if (!_.isObject(originObj)) { + return originObj + } + + const ret = {}; + + for (let key in originObj) { + let val = originObj[key] + // console.log(key, val) + + // 将key转换为下划线方式 + let keyNew = _.snakeCase(key) + ret[keyNew] = val + } + + return ret +} + +function camelCaseObject(originObj) { + if (!_.isObject(originObj)) { + return originObj + } + + const ret = {}; + + for (let key in originObj) { + let val = originObj[key] + // console.log(key, val) + + // 将key转换为下划线方式 + let keyNew = _.camelCase(key) + ret[keyNew] = val + } + + return ret +} + +function kebabCaseObject(originObj) { + if (!_.isObject(originObj)) { + return originObj + } + + const ret = {}; + + for (let key in originObj) { + let val = originObj[key] + // console.log(key, val) + + // 将key转换为下划线方式 + let keyNew = _.kebabCase(key) + ret[keyNew] = val + } + + return ret +} + +export { + camelCaseObject, + snakeCaseObject, + kebabCaseObject, +} \ No newline at end of file diff --git a/utils/test/js/index.js b/utils/test/js/index.js new file mode 100644 index 0000000..c1b4839 --- /dev/null +++ b/utils/test/js/index.js @@ -0,0 +1,23 @@ +import _ from 'lodash' +import {camelCaseObject, snakeCaseObject, kebabCaseObject} from '../../js/object.js' + +function test() { + // lodash库函数测试 + console.log(_.isObject({})) + console.log(_.isObject(1)) + console.log(_.isObject(null)) + console.log(_.camelCase('a_bc')) // aBc + console.log(_.snakeCase('aBc')) // a_bc + console.log(_.kebabCase('aBc')) // a-bc + + // 单元测试 + let obj = {aBc: 1, en: 'khz', cnNew: '华仔'} + let objSnake = snakeCaseObject(obj) + console.log(objSnake) // { a_bc: 1, en: 'khz', cn_new: '华仔' } + let objCamel = camelCaseObject(objSnake) + console.log(objCamel) // { aBc: 1, en: 'khz', cnNew: '华仔' } + let objKebab = kebabCaseObject(objSnake) + console.log(objKebab) // { 'a-bc': 1, en: 'khz', 'cn-new': '华仔' } +} + +test() -- GitLab