|
|
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;
¸´ÖÆ´úÂë
|
|