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

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

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

之前的代码,不好

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

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);

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

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

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

  • 18
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

经海路大白狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值