 | |  |  | AIWROK苹果系统Map 数据管理[map]小结
[color=var(--md-box-h3-text-color,var(--md-box-global-text-color))]方法一:add(添加键值对)项目 | 说明 | 功能描述 | 将键和值添加到 Map 中 | 方法签名 | Void add(String key, String value) | 返回值 | Void | 参数 | String key : 键String value : 值 | 案例 | new Map().add('','') | [color=var(--md-box-h3-text-color,var(--md-box-global-text-color))]方法二:delete(删除指定键值对)项目 | 说明 | 功能描述 | 从 Map 中删除指定的键值对 | 方法签名 | Void delete(String key) | 返回值 | Void | 参数 | String key : 键 | 案例 | new Map().delete('') | [color=var(--md-box-h3-text-color,var(--md-box-global-text-color))]方法三:clear(清空所有键值对)项目 | 说明 | 功能描述 | 移除 Map 中的所有键值对 | 方法签名 | Void clear() | 返回值 | Void | 参数 | 无 | 案例 | new Map().clear() | [color=var(--md-box-h3-text-color,var(--md-box-global-text-color))]方法四:get(根据键获取值)项目 | 说明 | 功能描述 | 根据键获取对应的值 | 方法签名 | String get(String key) | 返回值 | String | 参数 | String key : 键 | 案例 | new Map().get('') | [color=var(--md-box-h3-text-color,var(--md-box-global-text-color))]方法五:getAllValue(获取所有值)项目 | 说明 | 功能描述 | 返回 Map 中所有值的集合 | 方法签名 | String[] getAllValue() | 返回值 | String[] | 参数 | 无 | 案例 | new Map().getAllValue() | [color=var(--md-box-h3-text-color,var(--md-box-global-text-color))]方法六: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[index] = 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[index];
- }
- 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.keys[i]] = this.values[i];
- }
- 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[i];
- if (statusCounts[status] !== undefined) {
- statusCounts[status]++;
- }
- }
-
- 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: [1, 2, 3, 4, 5], 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;
复制代码
| |  | |  |
|