You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用数组变量动态声明数组名称并添加数据

动态创建数组存储服务器应用信息解决方案

核心思路

不要使用eval动态声明全局变量,而是通过对象容器来管理各个服务器对应的数组,这种方式更安全、易维护,也符合JavaScript的最佳实践。

修正后的代码

var appArray = ['orange','apple','mango'];    
function appData() {
    // 初始化对象,用于存储每个服务器对应的应用数组
    const serverApps = {};

    for (let i = 0; i < appArray.length; i++) {
        var getApp = new GlideRecord('table');
        // 修正拼写错误:addQuey → addQuery,同时使用正确的参数格式
        getApp.addQuery('columnName', '=', appArray[i]);
        getApp.query();
        
        while (getApp.next()) {
            var serverName = getApp.getValue('name'); // 获取服务器名称,如"server1"
            // 替换为实际存储应用信息的字段名
            var applicationInfo = getApp.getValue('application_name'); 

            // 如果当前服务器还没有对应的数组,先创建空数组
            if (!serverApps[serverName]) {
                serverApps[serverName] = [];
            }
            // 将应用信息添加到对应服务器的数组中
            serverApps[serverName].push(applicationInfo);
        }
    }

    // 示例输出:serverApps.server1 = ["app1", "app2"],serverApps.server3 = ["app3"]
    console.log(serverApps);
    return serverApps;
}

关键说明

  • 避免使用eval:eval会执行任意字符串代码,存在安全隐患,且代码可读性差,调试难度高。用对象管理动态数组是更规范的方案。
  • 修正查询语法:原代码中addQuey是拼写错误,正确方法为addQuery,且参数格式应为addQuery(字段名, 操作符, 值)。
  • 变量作用域优化:循环中使用let i替代全局i,防止全局变量污染。
  • 访问方式:可以通过serverApps['server1']或serverApps.server1直接获取对应服务器的应用列表。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:55:21