js-tool-big-box工具库,小伙伴提出对于获取属相方法的修改

经海路大白狗 2024-07-15 11:05:02 阅读 90

js-tool-big-box工具库,取名为big-box呢,是希望这个工具库是一个大盒子,然后里面会有很多小盒子,小盒子里面再有很多所属的公共方法这些更小的盒子。

这其中 timeBox 这个盒子里呢,有个获取属相的方法 getAnimalOfBorn ,原本写法是判断的形式,这种写法的确不太好。感谢这位小伙伴的提出,希望可以让 js-tool-big-box 工具库越来越好,越来越可以帮助更多的前端开发者们。

之前的代码,不好

之前的写法的确是很累赘,写的很邋遢。之前的代码是这样子的:

<code>getAnimalOfBorn: function(time) {

const year = getYear(time);

const defaultYear = 1900;

const remainYear = (year - defaultYear) % 12;

if (remainYear === 0) {

return 'rat';

}

if (remainYear === 1) {

return 'ox';

}

...

...

if (remainYear === 11) {

return 'boar';

}

},

更改第一步 

 小伙伴提出,可以更高效的实现这个功能,因为 remainYear 这个变量呢,就是会返回从0到11的,而属相也正好是从鼠到猪的,也正好是12个。所以可以将属相定义为一个数组,所以更改为了这样的写法:

getAnimalOfBorn: function(time) {

const year = getYear(time);

const defaultYear = 1900;

const remainYear = (year - defaultYear) % 12;

const animals = ['rat', 'ox', 'tiger', 'hare', 'dragon', 'snake', 'horse', 'sheep', 'monkey', 'rooster', 'dog', 'boar'];

return animals[remainYear];

},

以上代码中,的确是精简多了,对吧。太感谢小伙伴的支持了,我想送给小伙伴一个礼物。

更改第二步

但是后来我又一想啊,这12个属相啊,本来就是应该命名为中文的,搞一些英文单词貌似不太符合大家的需求。而且如果项目中需要展示属相,大多数会弄12个小icon图标,或者显示为中文,所以只显示英文单词就不太靠谱了。所以我又做了一下更改,添加了一下中文的内容,代码如下:

getAnimalOfBorn: function(time) {

const year = getYear(time);

const defaultYear = 1900;

const remainYear = (year - defaultYear) % 12;

const animals = ['rat|鼠', 'ox|牛', 'tiger|虎', 'hare|兔', 'dragon|龙', 'snake|蛇', 'horse|马', 'sheep|羊', 'monkey|猴', 'rooster|鸡', 'dog|狗', 'boar|猪'];

return animals[remainYear];

},

更改后的显示效果

 安装js-tool-big-box,执行安装命令

npm install js-tool-big-box

引入timeBox对象,接下来会使用里面的 getAnimalOfBorn 方法

import { timeBox } from 'js-tool-big-box';

我们知道2025年的孩子们是属蛇的,对吧,

const animal = timeBox.getAnimalOfBorn('2025-10-10');

console.log('2025-10-10的属相:', animal);

这样,获取到数据后,我们就可以更灵活的决定,是显示中文,还是英文了。要不开发者使用的时候,自己还需要准备一个数组去存放中文内容。现在你可以这样显示中文:

<code>const animal = timeBox.getAnimalOfBorn('2025-10-10');

console.log('2025-10-10的属相 - 中文:', animal.split('|')[1]);

感谢小伙伴的建议,非常感谢。 



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。