这个方法是将id转换为值的吗?我这样写对不对


function iDone(id, data) {
  for(var i = 0; i < data.length; i++) {
    if(data[i].id == id) {
      return data[i].value;
    };
  }
}

var idTypeData=[
    {id:'01',value: '居民身份证'},
    {id:'02',value: '居民户口簿'},
    {id:'04',value: '军官证'},
    {id:'05',value: '士兵证'},
    {id:'16',value: '警官证'},
    {id:'51',value: '外国护照'},
    {id:'11',value: '港澳居民通行证'},
    {id:'12',value: '台胞证'},
    {id:'13',value: '出生证'},
    {id:'18',value: '外国人永久居留身份证'}

];
var apptype = data.applicant.identity_card.type;
                var apptypes = iDone(apptype, idTypeData);
                if(vm.applicant.type == "04" || vm.applicant.type == "16"){
                hxui.toast("要求,"+apptypes+",请核实修改");

实际出来的效果是 要求出生证,请核实修改


var apptype = data.applicant.identity_card.type;
// 这里打印一下apptype ,看是否为想要的id

你想要的应该是key-value取值的形式


<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <title>clickEvent</title>
        <style>

        </style>
    </head>

    <body>
        <script>

            var idTypeData = {
                '01': '居民身份证',
                '04': '军官证',
                '16': '警官证'
            }

            function iDone(id, data) {
                return data[id]
            }

            console.log('iDone', iDone('04', idTypeData))

        </script>
    </body>

</html>

iDone函数是查询id对应的中文名称。

你那样没问题的,对的