YYPOST群发软件 发表于 2025-11-3 06:58:36

AIWROK苹果系统Map 数据管理[map]小结

AIWROK苹果系统Map 数据管理小结






方法一:add(添加键值对)
项目说明
功能描述将键和值添加到 Map 中
方法签名Void add(String key, String value)
返回值Void
参数String key: 键String value: 值
案例new Map().add('','')
方法二:delete(删除指定键值对)
项目说明
功能描述从 Map 中删除指定的键值对
方法签名Void delete(String key)
返回值Void
参数String key: 键
案例new Map().delete('')
方法三:clear(清空所有键值对)
项目说明
功能描述移除 Map 中的所有键值对
方法签名Void clear()
返回值Void
参数无
案例new Map().clear()
方法四:get(根据键获取值)
项目说明
功能描述根据键获取对应的值
方法签名String get(String key)
返回值String
参数String key: 键
案例new Map().get('')
方法五:getAllValue(获取所有值)
项目说明
功能描述返回 Map 中所有值的集合
方法签名String[] getAllValue()
返回值String[]
参数无
案例new Map().getAllValue()
方法六:toString(转换为字符串)
项目说明
功能描述将 Map 转换为字符串,返回 Map 的 JSON 格式字符串
方法签名String toString()
返回值String
参数无
案例new Map().toString()
完整示例:

/**
* AIWROK软件苹果技术文档 - Map类实际应用示例
* 展示Map类在实际开发中的应用场景
*/

// Map类实现 (复制自之前的实现)
function Map() {
    this.keys = new Array();
    this.values = new Array();
}

Map.prototype.add = function(key, value) {
    var index = this.keys.indexOf(key);
    if (index === -1) {
      this.keys.push(key);
      this.values.push(value);
    } else {
      this.values = value;
    }
};

Map.prototype.delete = function(key) {
    var index = this.keys.indexOf(key);
    if (index !== -1) {
      this.keys.splice(index, 1);
      this.values.splice(index, 1);
      return true;
    }
    return false;
};

Map.prototype.clear = function() {
    this.keys = new Array();
    this.values = new Array();
};

Map.prototype.get = function(key) {
    var index = this.keys.indexOf(key);
    if (index !== -1) {
      return this.values;
    }
    return null;
};

Map.prototype.getAllValue = function() {
    return this.values.slice();
};

Map.prototype.toString = function() {
    var obj = {};
    for (var i = 0; i < this.keys.length; i++) {
      obj] = this.values;
    }
    return JSON.stringify(obj);
};

// 场景1: 应用配置管理
defineAppConfigManagement = function() {
    console.log('\n===== 场景1: 应用配置管理 =====');
   
    // 创建配置管理器
    var configManager = new Map();
   
    // 存储应用配置
    configManager.add('appName', 'AIWork自动化工具');
    configManager.add('version', '1.0.0');
    configManager.add('timeout', 10000);
    configManager.add('retryCount', 3);
    configManager.add('debugMode', true);
   
    // 使用配置
    console.log('应用名称:', configManager.get('appName'));
    console.log('应用版本:', configManager.get('version'));
    console.log('超时设置:', configManager.get('timeout'), '毫秒');
   
    // 更新配置
    console.log('\n更新配置...');
    configManager.add('version', '1.0.1');
    configManager.add('debugMode', false);
   
    // 导出配置为JSON
    var configJson = configManager.toString();
    console.log('\n配置JSON格式:', configJson);
   
    console.log('配置管理演示完成!');
    return configManager;
};

// 场景2: 用户数据管理
defineUserDataManagement = function() {
    console.log('\n===== 场景2: 用户数据管理 =====');
   
    var userManager = new Map();
   
    // 存储多个用户信息
    userManager.add('user1', {name: '张三', age: 25, role: '管理员'});
    userManager.add('user2', {name: '李四', age: 30, role: '操作员'});
    userManager.add('user3', {name: '王五', age: 28, role: '开发者'});
   
    // 查询用户信息
    var adminUser = userManager.get('user1');
    console.log('管理员信息:', JSON.stringify(adminUser));
   
    // 更新用户信息
    var operator = userManager.get('user2');
    operator.age = 31;
    operator.role = '高级操作员';
    userManager.add('user2', operator);
   
    console.log('更新后操作员信息:', JSON.stringify(userManager.get('user2')));
   
    // 获取所有用户
    var allUsers = userManager.getAllValue();
    console.log('\n所有用户数量:', allUsers.length);
    console.log('所有用户列表:', JSON.stringify(allUsers));
   
    console.log('用户数据管理演示完成!');
    return userManager;
};

// 场景3: 任务状态跟踪
defineTaskTracker = function() {
    console.log('\n===== 场景3: 任务状态跟踪 =====');
   
    var taskTracker = new Map();
   
    // 添加任务状态
    taskTracker.add('task1', '等待中');
    taskTracker.add('task2', '执行中');
    taskTracker.add('task3', '已完成');
    taskTracker.add('task4', '失败');
   
    // 更新任务状态
    console.log('初始任务1状态:', taskTracker.get('task1'));
    taskTracker.add('task1', '执行中');
    console.log('更新后任务1状态:', taskTracker.get('task1'));
   
    // 删除已完成任务
    console.log('删除已完成任务...');
    taskTracker.delete('task3');
   
    // 统计任务状态
    var statusCounts = {
      '等待中': 0,
      '执行中': 0,
      '已完成': 0,
      '失败': 0
    };
   
    var allStatus = taskTracker.getAllValue();
    for (var i = 0; i < allStatus.length; i++) {
      var status = allStatus;
      if (statusCounts !== undefined) {
            statusCounts++;
      }
    }
   
    console.log('\n任务状态统计:', JSON.stringify(statusCounts));
    console.log('当前跟踪的任务:', taskTracker.toString());
   
    console.log('任务状态跟踪演示完成!');
    return taskTracker;
};

// 场景4: 缓存管理器
defineCacheManager = function() {
    console.log('\n===== 场景4: 缓存管理器 =====');
   
    var cacheManager = new Map();
   
    // 缓存数据
    cacheManager.add('api_data_1', {data: , timestamp: Date.now()});
    cacheManager.add('api_data_2', {data: '缓存的字符串数据', timestamp: Date.now()});
    cacheManager.add('image_base64_1', 'base64编码的图像数据...');
   
    // 检查缓存
    console.log('缓存键数量:', cacheManager.keys.length);
    console.log('是否有API数据1缓存:', cacheManager.get('api_data_1') !== null ? '是' : '否');
   
    // 模拟缓存过期检查
    console.log('\n模拟缓存过期检查...');
    var cachedData = cacheManager.get('api_data_1');
    if (cachedData) {
      var now = Date.now();
      var cacheTime = cachedData.timestamp;
      console.log('缓存时间:', (now - cacheTime), '毫秒前');
    }
   
    // 清除特定缓存
    console.log('\n清除图像缓存...');
    cacheManager.delete('image_base64_1');
    console.log('清除后键数量:', cacheManager.keys.length);
   
    // 清空所有缓存
    console.log('\n清空所有缓存...');
    cacheManager.clear();
    console.log('清空后键数量:', cacheManager.keys.length);
   
    console.log('缓存管理器演示完成!');
    return cacheManager;
};

// 场景5: 命令映射表
defineCommandMapping = function() {
    console.log('\n===== 场景5: 命令映射表 =====');
   
    var commandMap = new Map();
   
    // 定义命令处理函数
    function handleStart() {
      return '启动任务成功!';
    }
   
    function handleStop() {
      return '停止任务成功!';
    }
   
    function handleRestart() {
      return '重启任务成功!';
    }
   
    // 映射命令到处理函数
    commandMap.add('start', handleStart);
    commandMap.add('stop', handleStop);
    commandMap.add('restart', handleRestart);
   
    // 执行命令
    console.log('执行start命令:', commandMap.get('start')());
    console.log('执行stop命令:', commandMap.get('stop')());
   
    // 动态添加命令
    console.log('\n动态添加status命令...');
    commandMap.add('status', function() { return '获取任务状态: 运行中'; });
    console.log('执行status命令:', commandMap.get('status')());
   
    // 检查命令是否存在
    var commandName = 'pause';
    var command = commandMap.get(commandName);
    if (command) {
      console.log('执行', commandName, '命令:', command());
    } else {
      console.log('命令', commandName, '不存在!');
    }
   
    console.log('命令映射表演示完成!');
    return commandMap;
};

// 主函数 - 运行所有场景
defineMapPracticalApplications = function() {
    console.log('======= Map类实际应用演示 =======');
    console.log('此示例展示了Map类在AIWork自动化开发中的5个实际应用场景');
   
    try {
      // 运行各个场景
      var configManager = defineAppConfigManagement();
      var userManager = defineUserDataManagement();
      var taskTracker = defineTaskTracker();
      var cacheManager = defineCacheManager();
      var commandMap = defineCommandMapping();
      
      console.log('\n=================================');
      console.log('✅ Map类所有应用场景演示成功!');
      console.log('\nMap类的主要作用:');
      console.log('1. 提供键值对数据存储和检索');
      console.log('2. 支持配置管理、用户数据管理');
      console.log('3. 可用于状态跟踪、缓存管理');
      console.log('4. 实现命令映射和分发');
      console.log('5. 在AIWork脚本中管理动态数据');
      console.log('=================================');
      
      return {
            configManager: configManager,
            userManager: userManager,
            taskTracker: taskTracker,
            cacheManager: cacheManager,
            commandMap: commandMap
      };
    } catch (e) {
      console.log('\n演示过程中出现错误:', e.message);
    }
};

// 运行演示
try {
    console.log('启动Map类实际应用演示...');
    var applicationInstances = defineMapPracticalApplications();
    console.log('\n演示完成! 所有Map实例可在脚本中继续使用。');
} catch (e) {
    console.log('启动演示失败:', e.message);
}

// 返回Map类供其他脚本使用
Map;


页: [1]
查看完整版本: AIWROK苹果系统Map 数据管理[map]小结