如果条件内循环

时间:2017-08-07 21:02:34

标签: javascript servicenow

我想从当前用户记录中获取经理用户。所以我创建了一个for循环来获取当前用户的所有层次结构

例如:如果来自我的FORloop i的当前当前用户主管将得到这样的结果

  • 助理经理
  • 管理器
  • VP
  • SVP
  • CEO

从上面的循环我需要将Manager和VP用户分开,以便我将IF条件添加到我的FOR循环但看起来它不起作用的原因

var grnewreports= new GlideRecord('sys_user');
grnewreports.get('2f78075c13d99a0085b9da82e144b0f5');
generateApprovalNewNonMangament(grnewreports,5,'test')

function generateApprovalNewNonMangament(grnewreports, approvalLevel, approvalDescription) {
    try {

        var approvalUser = '';
        var manager1level = '';
        //var manager = '';
        for(var i = 1; i <= approvalLevel ; i++) {

            approvalUser = grnewreports.manager;
            gs.log('approval user:'+approvalUser,'TESTINSIDEIF');
            grnewreports = grnewreports.manager; // upgrading the level of user so that in next loop it should pick next level

            if(string[i].title == 'Managemnt') {
                var manager1 = string[i];
                var vp = manager1.manager;
            }

        }

    }
    catch(ex) {
    }
}

请帮我解决我在脚本中出错的问题

谢谢, 切塔尼亚

1 个答案:

答案 0 :(得分:0)

我相信您的问题可能是由于“传递参考”。

这是我写的一篇文章,解释了这个问题,以及如何解决它! https://snprotips.com/blog/2017/4/9/always-use-getters-and-setters

简短回答:在第13,15和19行使用 .getValue()