仅将唯一值推送到数组中

问题描述

无法检查显示所有值的唯一值日志 添加到数组

.

var movetoReady = [];       
 var topLinesRecords = new GlideRecord('x_snc_ms_dynamics_d365_queue');
    topLinesRecords.addEncodedQuery('root_element_sys_id=03133e1a1bfe6410f8ca0e16624bcba7');
    topLinesRecords.orderByDesc('sys_created_on');
    topLinesRecords.query();
    while(topLinesRecords.next()){

gs.info(' first record : ' + topLinesRecords.number);

    if(movetoReady.indexOf(topLinesRecords.getValue('object_sys_id')) == -1){
        movetoReady.push(topLinesRecords.getValue('object_sys_id'));
         }

gs.info('array.  : ' + movetoReady);
        updateRecordtoFail(topLinesRecords);
        }

解决方法

您可以使用 array.includes

if (!moveToReady.includes(topLinesRecords.getValue('object_sys_id'))){
  moveToReady.push(topLinesRecords.getValue('object_sys_id'));
}
,

因此,在 ServiceNow 上获取唯一值的一些技巧: -GlideRecord 有一个“getUniqueValue”方法 (网址:https://docs.servicenow.com/bundle/paris-platform-administration/page/administer/table-administration/concept/c_UniqueRecordIdentifier.html

-您可以搜索包含 OOB 方法/函数的脚本以仅获取唯一值。搜索“实用程序”。

希望这些信息有帮助!

,

您可以使用 ES6 中的 Set 结构来使您的代码更快、更易读:

// Create Set
this.items = new Set();

add(item) {
    this.items.add(item);

    // Set to array
    console.log([...this.items]);
}