爱美食的程序员 2022-04-26 19:07 采纳率: 73.3%
浏览 110
已结题

后台获取得数据根据字典数据,获取相应得值?

后台获取得数据根据字典数据,获取相应得值?

有如下两个数组,list是后台获取得数据,dicts是字典表;
需要将list中数据sex和job根据字典数组得到name

var list = [
        {name: '张三', sex: 0,job:1},
        {name: '李四', sex: 1,job:''},
        {name: '李3', sex: 1,job:null}
    ]
    var dicts = [
        {
            name: 'sex', values: [
                {name: '男', value: 0},
                {name: '女', value: 1},
                {name: '保密', value: 2}
            ]
        },
        {
            name: 'job', values: [
                {name: '工人', value: 0},
                {name: '医生', value: 1},
                {name: '农民', value: 2}
            ]
        }
    ]

需要得到如下数组展示

var list = [
        {name: '张三', sex: 0,job:1,sexName:'男',jobName:'医生'},
        {name: '李四', sex: 1,job:'',sexName:'女',jobName:''},
        {name: '李3', sex: 1,job:null,sexName:'女',jobName:''}
    ]

  • 写回答

1条回答 默认 最新

  • 前端呆头鹅 2022-04-26 21:01
    关注

    代码如下(已通过测试):

    
    function getName(name, val) {
        if(typeof val !== 'number') {
            return ''
        }
        return dicts.find(item => {
            return item.name === name
        })
        .values
        .find(item => {
            return item.value === val
        })
        .name
    }
    
    list.forEach(item => {
        item.sexName = getName('sex', item.sex)
        item.jobName = getName('job', item.job)
    })
    
    console.log(list)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月6日
  • 已采纳回答 4月28日
  • 创建了问题 4月26日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示