字典的处理

最近遇到了一个字典处理的问题,情况是这样的有一个字典定义的是单据类型结构如下

[
    {
        code: 1001,
        name: A
    }, {
        code: 1002,
        name: B
    }, {
        code: 1003,
        name: C
    }
]

由于业务需要新家了一个字典项D,就变成了下面的结构

[
    {
        code: 1001,
        name: A
    }, {
        code: 1002,
        name: B
    }, {
        code: 1003,
        name: C
    },{
        code:1004,
        name: D
    }
]    

但是有个要求就是单据D是从其他途径生成的,在程序中展示单据类型的时候(查看,修改等)是有类型D的,但是在新增的时候是不能出现类型D的。让后端写两个字典有点多余(主要是后端也不想写)。

本人灵机一动根据状态不同我做了一下字典的处理——Dictionary.pop()。就是正常的用全量字典。新增的时候删掉最后边的D类型。效果不错,当时还沾沾自喜,殊不知给自己埋下了一个大坑。

过了一段时间又新增了一个单据类型F而且也是不能再新增显示的,并且不是我开发的。代码没动F是不显示,可是D在新增的时候显示了。实际上处理起来也不费事建议以后用过滤的方法而不是直接删除第几个

let loseList ['D', 'F']
dict = dict.filter(item => !loseList.includes(item.name))

这样还有一个好处就是以后有新的字典项需要处理只需要维护loseList数组就行了。

posted @ 2020-12-26 16:58  hauner  阅读(93)  评论(0编辑  收藏  举报