B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 12|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

AIWROKÈí¼þ½Å±¾JSONת»»Ê¾Àý

[¸´ÖÆÁ´½Ó]

1095

Ö÷Ìâ

1100

Ìû×Ó

7657

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7657
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
AIWROKÈí¼þ½Å±¾JSONת»»Ê¾Àý
AIWROKÈí¼þ½Å±¾JSONת»»Ê¾Àý B2BÍøÂçÈí¼þ

  1. // AIWROK ʵÓù¤¾ß¼¯ - ÍêÕûʾÀý (ES5 ¼æÈÝ)
  2. // °üº¬£ºÎļþ²Ù×÷¡¢ÍøÂçÇëÇó¡¢Êý¾Ý´¦Àí¡¢UI½»»¥µÈʵÓù¦ÄÜ
  3. // ES5ϵͳ°²×¿ JavaScriptÒýÇæRhino     
  4. //🍎½»Á÷QQȺ711841924Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639


  5. // ==================== 1. Îļþϵͳ¹ÜÀí¹¤¾ß ====================
  6. printl("=== 1. Îļþϵͳ¹ÜÀí¹¤¾ß ===");

  7. function FileManager() {
  8.     this.basePath = '/sdcard/AIWROK/';
  9. }

  10. FileManager.prototype.createDirectory = function(path) {
  11.     try {
  12.         var fullPath = this.basePath + path;
  13.         // Ä£Äâ´´½¨Ä¿Â¼
  14.         printl("´´½¨Ä¿Â¼: " + fullPath);
  15.         return true;
  16.     } catch (e) {
  17.         printl("´´½¨Ä¿Â¼Ê§°Ü: " + e);
  18.         return false;
  19.     }
  20. };

  21. FileManager.prototype.writeFile = function(filename, content) {
  22.     try {
  23.         var fullPath = this.basePath + filename;
  24.         // Ä£ÄâдÈëÎļþ
  25.         printl("дÈëÎļþ: " + fullPath);
  26.         printl("ÄÚÈݳ¤¶È: " + content.length);
  27.         return true;
  28.     } catch (e) {
  29.         printl("дÈëÎļþʧ°Ü: " + e);
  30.         return false;
  31.     }
  32. };

  33. FileManager.prototype.readFile = function(filename) {
  34.     try {
  35.         var fullPath = this.basePath + filename;
  36.         // Ä£Äâ¶ÁÈ¡Îļþ
  37.         printl("¶ÁÈ¡Îļþ: " + fullPath);
  38.         return "Ä£ÄâÎļþÄÚÈÝ: " + filename;
  39.     } catch (e) {
  40.         printl("¶ÁÈ¡Îļþʧ°Ü: " + e);
  41.         return null;
  42.     }
  43. };

  44. FileManager.prototype.listDirectory = function(path) {
  45.     try {
  46.         var fullPath = this.basePath + path;
  47.         // Ä£ÄâÁгöĿ¼ÄÚÈÝ
  48.         printl("ÁгöĿ¼: " + fullPath);
  49.         return ['file1.txt', 'file2.json', 'subdir'];
  50.     } catch (e) {
  51.         printl("ÁгöĿ¼ʧ°Ü: " + e);
  52.         return [];
  53.     }
  54. };

  55. var fileManager = new FileManager();
  56. printl("FileManagerʵÀýÒÑ´´½¨");

  57. // ÑÝʾÎļþ²Ù×÷
  58. fileManager.createDirectory('projects');
  59. fileManager.createDirectory('backups');
  60. fileManager.writeFile('config.json', '{"theme": "dark", "version": "1.0"}');
  61. fileManager.readFile('config.json');
  62. fileManager.listDirectory('projects');

  63. sleep.second(2); // 2ÃëÑÓʱ

  64. // ==================== 2. ÍøÂçÇëÇó¹ÜÀíÆ÷ ====================
  65. printl("");
  66. printl("=== 2. ÍøÂçÇëÇó¹ÜÀíÆ÷ ===");

  67. function HttpClient() {
  68.     this.baseUrl = 'https://api.example.com';
  69.     this.headers = {
  70.         'Content-Type': 'application/json',
  71.         'User-Agent': 'AIWROK-Client/1.0'
  72.     };
  73. }

  74. HttpClient.prototype.get = function(endpoint, params) {
  75.     params = params || {};
  76.     var url = this.baseUrl + endpoint;
  77.    
  78.     // Ìí¼Ó²éѯ²ÎÊý
  79.     var queryString = '';
  80.     for (var key in params) {
  81.         if (params.hasOwnProperty(key)) {
  82.             queryString += (queryString ? '&' : '?') + key + '=' + encodeURIComponent(params[key]);
  83.         }
  84.     }
  85.    
  86.     printl("GETÇëÇó: " + (url + queryString));
  87.     printl("Headers: " + JSON.stringify(this.headers));
  88.    
  89.     // Ä£ÄâÏìÓ¦
  90.     return {
  91.         status: 200,
  92.         data: { message: '³É¹¦»ñÈ¡Êý¾Ý', endpoint: endpoint },
  93.         headers: { 'content-type': 'application/json' }
  94.     };
  95. };

  96. HttpClient.prototype.post = function(endpoint, data) {
  97.     var url = this.baseUrl + endpoint;
  98.    
  99.     printl("POSTÇëÇó: " + url);
  100.     printl("ÇëÇóÊý¾Ý: " + JSON.stringify(data));
  101.     printl("Headers: " + JSON.stringify(this.headers));
  102.    
  103.     // Ä£ÄâÏìÓ¦
  104.     return {
  105.         status: 201,
  106.         data: { message: 'Êý¾Ý´´½¨³É¹¦', id: Math.floor(Math.random() * 1000) },
  107.         headers: { 'content-type': 'application/json' }
  108.     };
  109. };

  110. HttpClient.prototype.put = function(endpoint, data) {
  111.     var url = this.baseUrl + endpoint;
  112.    
  113.     printl("PUTÇëÇó: " + url);
  114.     printl("¸üÐÂÊý¾Ý: " + JSON.stringify(data));
  115.    
  116.     // Ä£ÄâÏìÓ¦
  117.     return {
  118.         status: 200,
  119.         data: { message: 'Êý¾Ý¸üгɹ¦' },
  120.         headers: { 'content-type': 'application/json' }
  121.     };
  122. };

  123. HttpClient.prototype.delete = function(endpoint) {
  124.     var url = this.baseUrl + endpoint;
  125.    
  126.     printl("DELETEÇëÇó: " + url);
  127.    
  128.     // Ä£ÄâÏìÓ¦
  129.     return {
  130.         status: 200,
  131.         data: { message: 'Êý¾Ýɾ³ý³É¹¦' },
  132.         headers: { 'content-type': 'application/json' }
  133.     };
  134. };

  135. var httpClient = new HttpClient();
  136. printl("HttpClientʵÀýÒÑ´´½¨");

  137. // ÑÝÊ¾ÍøÂçÇëÇó
  138. var getUserResponse = httpClient.get('/users/123', { fields: 'name,email' });
  139. printl("GETÏìӦ״̬: " + getUserResponse.status);
  140. printl("GETÏìÓ¦Êý¾Ý: " + JSON.stringify(getUserResponse.data));

  141. sleep.second(2); // 2ÃëÑÓʱ

  142. var createUserResponse = httpClient.post('/users', {
  143.     name: 'ÕÅÈý',
  144.     email: 'zhangsan@example.com',
  145.     age: 25
  146. });
  147. printl("POSTÏìӦ״̬: " + createUserResponse.status);
  148. printl("POSTÏìÓ¦Êý¾Ý: " + JSON.stringify(createUserResponse.data));

  149. sleep.second(2); // 2ÃëÑÓʱ

  150. // ==================== 3. Êý¾ÝÑéÖ¤Æ÷ ====================
  151. printl("");
  152. printl("=== 3. Êý¾ÝÑéÖ¤Æ÷ ===");

  153. function Validator() {}

  154. Validator.isEmail = function(email) {
  155.     var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  156.     return re.test(email);
  157. };

  158. Validator.isPhone = function(phone) {
  159.     var re = /^1[3-9]\d{9}$/;
  160.     return re.test(phone);
  161. };

  162. Validator.isURL = function(url) {
  163.     var re = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
  164.     return re.test(url);
  165. };

  166. Validator.isEmpty = function(value) {
  167.     if (value === null || value === undefined) return true;
  168.     if (typeof value === 'string') return value.trim().length === 0;
  169.     if (Array.isArray(value)) return value.length === 0;
  170.     if (typeof value === 'object') return Object.keys(value).length === 0;
  171.     return false;
  172. };

  173. Validator.isNumber = function(value) {
  174.     return typeof value === 'number' && !isNaN(value);
  175. };

  176. Validator.isBoolean = function(value) {
  177.     return typeof value === 'boolean';
  178. };

  179. Validator.validateForm = function(formData, rules) {
  180.     var errors = {};
  181.     var isValid = true;
  182.    
  183.     for (var field in rules) {
  184.         if (rules.hasOwnProperty(field)) {
  185.             var rule = rules[field];
  186.             var value = formData[field];
  187.             
  188.             if (rule.required && Validator.isEmpty(value)) {
  189.                 errors[field] = rule.message || field + '²»ÄÜΪ¿Õ';
  190.                 isValid = false;
  191.                 continue;
  192.             }
  193.             
  194.             if (!Validator.isEmpty(value)) {
  195.                 if (rule.type === 'email' && !Validator.isEmail(value)) {
  196.                     errors[field] = rule.message || field + '¸ñʽ²»ÕýÈ·';
  197.                     isValid = false;
  198.                 } else if (rule.type === 'phone' && !Validator.isPhone(value)) {
  199.                     errors[field] = rule.message || field + '¸ñʽ²»ÕýÈ·';
  200.                     isValid = false;
  201.                 } else if (rule.type === 'url' && !Validator.isURL(value)) {
  202.                     errors[field] = rule.message || field + '¸ñʽ²»ÕýÈ·';
  203.                     isValid = false;
  204.                 } else if (rule.minLength && value.length < rule.minLength) {
  205.                     errors[field] = rule.message || field + '³¤¶È²»ÄÜÉÙÓÚ' + rule.minLength;
  206.                     isValid = false;
  207.                 } else if (rule.maxLength && value.length > rule.maxLength) {
  208.                     errors[field] = rule.message || field + '³¤¶È²»Äܳ¬¹ý' + rule.maxLength;
  209.                     isValid = false;
  210.                 }
  211.             }
  212.         }
  213.     }
  214.    
  215.     return {
  216.         isValid: isValid,
  217.         errors: errors
  218.     };
  219. };

  220. printl("Validator¹¤¾ßÀàÒѶ¨Òå");

  221. // ÑÝʾÊý¾ÝÑéÖ¤
  222. var testData = {
  223.     email: 'test@example.com',
  224.     phone: '13800138000',
  225.     url: 'https://www.example.com',
  226.     empty: '',
  227.     number: 42,
  228.     boolean: true
  229. };

  230. printl("ÓÊÏäÑéÖ¤: " + Validator.isEmail(testData.email));
  231. printl("ÊÖ»úÑéÖ¤: " + Validator.isPhone(testData.phone));
  232. printl("URLÑéÖ¤: " + Validator.isURL(testData.url));
  233. printl("¿ÕÖµÑéÖ¤: " + Validator.isEmpty(testData.empty));
  234. printl("Êý×ÖÑéÖ¤: " + Validator.isNumber(testData.number));
  235. printl("²¼¶ûÑéÖ¤: " + Validator.isBoolean(testData.boolean));

  236. sleep.second(2); // 2ÃëÑÓʱ

  237. // ±íµ¥Ñé֤ʾÀý
  238. var formRules = {
  239.     username: { required: true, minLength: 3, maxLength: 20, message: 'Óû§Ãû3-20¸ö×Ö·û' },
  240.     email: { required: true, type: 'email', message: 'ÓÊÏä¸ñʽ²»ÕýÈ·' },
  241.     phone: { required: false, type: 'phone', message: 'ÊÖ»úºÅ¸ñʽ²»ÕýÈ·' }
  242. };

  243. var formData = {
  244.     username: 'john_doe',
  245.     email: 'john@example.com',
  246.     phone: '13800138000'
  247. };

  248. var validationResult = Validator.validateForm(formData, formRules);
  249. printl("±íµ¥ÑéÖ¤½á¹û: " + JSON.stringify(validationResult));

  250. sleep.second(2); // 2ÃëÑÓʱ

  251. // ==================== 4. »º´æ¹ÜÀíÆ÷ ====================
  252. printl("");
  253. printl("=== 4. »º´æ¹ÜÀíÆ÷ ===");

  254. function CacheManager() {
  255.     this.cache = {};
  256.     this.ttl = {}; // time to live
  257. }

  258. CacheManager.prototype.set = function(key, value, ttlSeconds) {
  259.     ttlSeconds = ttlSeconds || 3600; // ĬÈÏ1Сʱ
  260.     this.cache[key] = value;
  261.     this.ttl[key] = Date.now() + (ttlSeconds * 1000);
  262.     printl("ÉèÖûº´æ: " + key + " TTL: " + ttlSeconds + " Ãë");
  263. };

  264. CacheManager.prototype.get = function(key) {
  265.     if (!this.cache.hasOwnProperty(key)) {
  266.         return null;
  267.     }
  268.    
  269.     // ¼ì²éÊÇ·ñ¹ýÆÚ
  270.     if (Date.now() > this.ttl[key]) {
  271.         delete this.cache[key];
  272.         delete this.ttl[key];
  273.         printl("»º´æÒѹýÆÚ: " + key);
  274.         return null;
  275.     }
  276.    
  277.     printl("»ñÈ¡»º´æ: " + key);
  278.     return this.cache[key];
  279. };

  280. CacheManager.prototype.remove = function(key) {
  281.     if (this.cache.hasOwnProperty(key)) {
  282.         delete this.cache[key];
  283.         delete this.ttl[key];
  284.         printl("ɾ³ý»º´æ: " + key);
  285.         return true;
  286.     }
  287.     return false;
  288. };

  289. CacheManager.prototype.clear = function() {
  290.     this.cache = {};
  291.     this.ttl = {};
  292.     printl("Çå¿ÕËùÓлº´æ");
  293. };

  294. CacheManager.prototype.size = function() {
  295.     return Object.keys(this.cache).length;
  296. };

  297. CacheManager.prototype.has = function(key) {
  298.     return this.cache.hasOwnProperty(key) && Date.now() <= this.ttl[key];
  299. };

  300. var cacheManager = new CacheManager();
  301. printl("CacheManagerʵÀýÒÑ´´½¨");

  302. // ÑÝʾ»º´æ²Ù×÷
  303. cacheManager.set('user_profile', { name: 'ÕÅÈý', age: 25 }, 300); // 5·ÖÖÓTTL
  304. cacheManager.set('app_config', { theme: 'dark', language: 'zh-CN' }, 3600); // 1СʱTTL

  305. printl("»º´æ´óС: " + cacheManager.size());
  306. printl("ÊÇ·ñ´æÔÚuser_profile: " + cacheManager.has('user_profile'));

  307. var userProfile = cacheManager.get('user_profile');
  308. printl("»ñÈ¡Óû§×ÊÁÏ: " + JSON.stringify(userProfile));

  309. sleep.second(2); // 2ÃëÑÓʱ

  310. cacheManager.remove('user_profile');
  311. printl("ɾ³ýºó»º´æ´óС: " + cacheManager.size());

  312. cacheManager.clear();
  313. printl("Çå¿Õºó»º´æ´óС: " + cacheManager.size());

  314. sleep.second(2); // 2ÃëÑÓʱ

  315. // ==================== 5. ʼþ×ÜÏß ====================
  316. printl("");
  317. printl("=== 5. ʼþ×ÜÏß ===");

  318. function EventBus() {
  319.     this.events = {};
  320. }

  321. EventBus.prototype.on = function(event, callback) {
  322.     if (!this.events[event]) {
  323.         this.events[event] = [];
  324.     }
  325.     this.events[event].push(callback);
  326.     printl("×¢²áʼþ¼àÌýÆ÷: " + event);
  327. };

  328. EventBus.prototype.off = function(event, callback) {
  329.     if (!this.events[event]) return;
  330.    
  331.     if (callback) {
  332.         var index = this.events[event].indexOf(callback);
  333.         if (index > -1) {
  334.             this.events[event].splice(index, 1);
  335.         }
  336.     } else {
  337.         delete this.events[event];
  338.     }
  339.     printl("ÒÆ³ýʼþ¼àÌýÆ÷: " + event);
  340. };

  341. EventBus.prototype.emit = function(event, data) {
  342.     if (!this.events[event]) return;
  343.    
  344.     printl("´¥·¢Ê¼þ: " + event + " Êý¾Ý: " + JSON.stringify(data));
  345.    
  346.     var callbacks = this.events[event].slice(); // ¸´ÖÆÊý×é±ÜÃâÐÞ¸ÄÎÊÌâ
  347.     for (var i = 0; i < callbacks.length; i++) {
  348.         try {
  349.             callbacks[i](data);
  350.         } catch (e) {
  351.             printl("ʼþ»Øµ÷Ö´ÐдíÎó: " + e);
  352.         }
  353.     }
  354. };

  355. EventBus.prototype.once = function(event, callback) {
  356.     var self = this;
  357.     var wrapper = function(data) {
  358.         callback(data);
  359.         self.off(event, wrapper);
  360.     };
  361.     this.on(event, wrapper);
  362.     printl("×¢²áÒ»´ÎÐÔʼþ¼àÌýÆ÷: " + event);
  363. };

  364. var eventBus = new EventBus();
  365. printl("EventBusʵÀýÒÑ´´½¨");

  366. // ÑÝʾʼþϵͳ
  367. eventBus.on('user_login', function(data) {
  368.     printl("Óû§µÇ¼Ê¼þ´¦Àí: " + data.username);
  369. });

  370. eventBus.on('data_loaded', function(data) {
  371.     printl("Êý¾Ý¼ÓÔØÍê³É: " + data.count + " Ìõ¼Ç¼");
  372. });

  373. eventBus.once('app_init', function(data) {
  374.     printl("Ó¦Óóõʼ»¯Íê³É: " + data.version);
  375. });

  376. // ´¥·¢Ê¼þ
  377. eventBus.emit('user_login', { username: 'john_doe', timestamp: new Date() });
  378. eventBus.emit('data_loaded', { count: 100, source: 'database' });
  379. eventBus.emit('app_init', { version: '1.0.0' });

  380. sleep.second(2); // 2ÃëÑÓʱ

  381. // ==================== 6. ÈÎÎñ¶ÓÁÐ ====================
  382. printl("");
  383. printl("=== 6. ÈÎÎñ¶ÓÁÐ ===");

  384. function TaskQueue(concurrency) {
  385.     concurrency = concurrency || 1;
  386.     this.queue = [];
  387.     this.running = 0;
  388.     this.concurrency = concurrency;
  389.     this.results = [];
  390. }

  391. TaskQueue.prototype.add = function(task) {
  392.     this.queue.push(task);
  393.     this.process();
  394. };

  395. TaskQueue.prototype.process = function() {
  396.     var self = this;
  397.    
  398.     while (this.running < this.concurrency && this.queue.length > 0) {
  399.         var task = this.queue.shift();
  400.         this.running++;
  401.         
  402.         // Òì²½Ö´ÐÐÈÎÎñ
  403.         (function(currentTask, taskId) {
  404.             setTimeout(function() {
  405.                 try {
  406.                     var result = currentTask();
  407.                     self.results.push({ id: taskId, result: result, success: true });
  408.                     printl("ÈÎÎñÍê³É: " + taskId);
  409.                 } catch (e) {
  410.                     self.results.push({ id: taskId, error: e.toString(), success: false });
  411.                     printl("ÈÎÎñʧ°Ü: " + taskId + " " + e.toString());
  412.                 } finally {
  413.                     self.running--;
  414.                     self.process(); // ´¦ÀíÏÂÒ»¸öÈÎÎñ
  415.                 }
  416.             }, 100); // Ä£ÄâÒì²½ÑÓ³Ù
  417.         })(task, this.results.length + 1);
  418.     }
  419. };

  420. TaskQueue.prototype.getResults = function() {
  421.     return this.results;
  422. };

  423. TaskQueue.prototype.clear = function() {
  424.     this.queue = [];
  425.     this.results = [];
  426.     this.running = 0;
  427. };

  428. var taskQueue = new TaskQueue(2); // ²¢·¢¶ÈΪ2
  429. printl("TaskQueueʵÀýÒÑ´´½¨£¬²¢·¢¶È: " + taskQueue.concurrency);

  430. // Ìí¼ÓÈÎÎñ
  431. taskQueue.add(function() {
  432.     printl("Ö´ÐÐÈÎÎñ1: Êý¾ÝÇåÏ´");
  433.     return { processed: 100, cleaned: 95 };
  434. });

  435. taskQueue.add(function() {
  436.     printl("Ö´ÐÐÈÎÎñ2: ͼƬѹËõ");
  437.     return { originalSize: '2MB', compressedSize: '500KB' };
  438. });

  439. taskQueue.add(function() {
  440.     printl("Ö´ÐÐÈÎÎñ3: ÊÓÆµ×ªÂë");
  441.     return { duration: '00:05:30', format: 'mp4' };
  442. });

  443. sleep.second(3); // µÈ´ýÈÎÎñÍê³É

  444. printl("ÈÎÎñÖ´Ðнá¹û: " + JSON.stringify(taskQueue.getResults()));

  445. sleep.second(2); // 2ÃëÑÓʱ

  446. // ==================== 7. ÅäÖùÜÀíÆ÷ ====================
  447. printl("");
  448. printl("=== 7. ÅäÖùÜÀíÆ÷ ===");

  449. function ConfigManager() {
  450.     this.configs = {};
  451.     this.defaults = {};
  452. }

  453. ConfigManager.prototype.setDefault = function(key, value) {
  454.     this.defaults[key] = value;
  455.     if (!this.configs.hasOwnProperty(key)) {
  456.         this.configs[key] = value;
  457.     }
  458. };

  459. ConfigManager.prototype.set = function(key, value) {
  460.     this.configs[key] = value;
  461.     printl("ÉèÖÃÅäÖÃ: " + key + " = " + JSON.stringify(value));
  462. };

  463. ConfigManager.prototype.get = function(key) {
  464.     if (this.configs.hasOwnProperty(key)) {
  465.         return this.configs[key];
  466.     }
  467.     return this.defaults.hasOwnProperty(key) ? this.defaults[key] : null;
  468. };

  469. ConfigManager.prototype.getAll = function() {
  470.     var allConfigs = {};
  471.    
  472.     // ºÏ²¢Ä¬ÈÏÅäÖúÍ×Ô¶¨ÒåÅäÖÃ
  473.     for (var key in this.defaults) {
  474.         allConfigs[key] = this.defaults[key];
  475.     }
  476.     for (var key in this.configs) {
  477.         allConfigs[key] = this.configs[key];
  478.     }
  479.    
  480.     return allConfigs;
  481. };

  482. ConfigManager.prototype.reset = function(key) {
  483.     if (key) {
  484.         if (this.defaults.hasOwnProperty(key)) {
  485.             this.configs[key] = this.defaults[key];
  486.         } else {
  487.             delete this.configs[key];
  488.         }
  489.     } else {
  490.         this.configs = {};
  491.     }
  492.     printl("ÖØÖÃÅäÖÃ: " + (key || "È«²¿"));
  493. };

  494. var configManager = new ConfigManager();
  495. printl("ConfigManagerʵÀýÒÑ´´½¨");

  496. // ÉèÖÃĬÈÏÅäÖÃ
  497. configManager.setDefault('theme', 'light');
  498. configManager.setDefault('language', 'en');
  499. configManager.setDefault('debug', false);

  500. // ÉèÖÃ×Ô¶¨ÒåÅäÖÃ
  501. configManager.set('theme', 'dark');
  502. configManager.set('fontSize', 14);
  503. configManager.set('autoSave', true);

  504. printl("µ±Ç°Ö÷Ìâ: " + configManager.get('theme'));
  505. printl("ÓïÑÔÉèÖÃ: " + configManager.get('language'));
  506. printl("×ÖÌå´óС: " + configManager.get('fontSize'));
  507. printl("×Ô¶¯±£´æ: " + configManager.get('autoSave'));
  508. printl("µ÷ÊÔģʽ: " + configManager.get('debug'));

  509. printl("ËùÓÐÅäÖÃ: " + JSON.stringify(configManager.getAll()));

  510. sleep.second(2); // 2ÃëÑÓʱ

  511. configManager.reset('theme');
  512. printl("ÖØÖÃÖ÷Ìâºó: " + configManager.get('theme'));

  513. configManager.reset();
  514. printl("ÖØÖÃËùÓÐÅäÖúó: " + JSON.stringify(configManager.getAll()));

  515. sleep.second(2); // 2ÃëÑÓʱ

  516. // ==================== 8. ÈÕÖ¾¹ÜÀíÆ÷ ====================
  517. printl("");
  518. printl("=== 8. ÈÕÖ¾¹ÜÀíÆ÷ ===");

  519. function LogManager() {
  520.     this.logs = [];
  521.     this.maxLogs = 1000;
  522.     this.levels = {
  523.         DEBUG: 0,
  524.         INFO: 1,
  525.         WARN: 2,
  526.         ERROR: 3
  527.     };
  528.     this.currentLevel = this.levels.INFO;
  529. }

  530. LogManager.prototype.log = function(level, message, data) {
  531.     if (level < this.currentLevel) return;
  532.    
  533.     var logEntry = {
  534.         timestamp: new Date(),
  535.         level: this.getLevelName(level),
  536.         message: message,
  537.         data: data || null
  538.     };
  539.    
  540.     this.logs.push(logEntry);
  541.    
  542.     // ÏÞÖÆÈÕÖ¾ÊýÁ¿
  543.     if (this.logs.length > this.maxLogs) {
  544.         this.logs.shift();
  545.     }
  546.    
  547.     // Êä³öµ½¿ØÖÆÌ¨
  548.     var prefix = '[' + logEntry.timestamp.toISOString() + '] [' + logEntry.level + '] ';
  549.     printl(prefix + message);
  550.     if (data) {
  551.         printl('  Êý¾Ý: ' + JSON.stringify(data));
  552.     }
  553. };

  554. LogManager.prototype.debug = function(message, data) {
  555.     this.log(this.levels.DEBUG, message, data);
  556. };

  557. LogManager.prototype.info = function(message, data) {
  558.     this.log(this.levels.INFO, message, data);
  559. };

  560. LogManager.prototype.warn = function(message, data) {
  561.     this.log(this.levels.WARN, message, data);
  562. };

  563. LogManager.prototype.error = function(message, data) {
  564.     this.log(this.levels.ERROR, message, data);
  565. };

  566. LogManager.prototype.getLevelName = function(level) {
  567.     for (var name in this.levels) {
  568.         if (this.levels[name] === level) {
  569.             return name;
  570.         }
  571.     }
  572.     return 'UNKNOWN';
  573. };

  574. LogManager.prototype.getLogs = function(level, limit) {
  575.     limit = limit || 50;
  576.     var filteredLogs = this.logs;
  577.    
  578.     if (level !== undefined) {
  579.         filteredLogs = this.logs.filter(function(log) {
  580.             return log.level === this.getLevelName(level);
  581.         }.bind(this));
  582.     }
  583.    
  584.     return filteredLogs.slice(-limit);
  585. };

  586. LogManager.prototype.clear = function() {
  587.     this.logs = [];
  588.     printl("ÈÕÖ¾ÒÑÇå¿Õ");
  589. };

  590. var logManager = new LogManager();
  591. printl("LogManagerʵÀýÒÑ´´½¨");

  592. // ÑÝʾÈÕÖ¾¼Ç¼
  593. logManager.debug("µ÷ÊÔÐÅÏ¢", { detail: "ÕâÊǵ÷ÊÔ¼¶±ðµÄÈÕÖ¾" });
  594. logManager.info("Ó¦ÓÃÆô¶¯", { version: "1.0.0", environment: "production" });
  595. logManager.warn("ÄÚ´æÊ¹Óýϸß", { used: "80%", total: "1GB" });
  596. logManager.error("Êý¾Ý¿âÁ¬½Óʧ°Ü", { host: "localhost", port: 3306 });

  597. sleep.second(2); // 2ÃëÑÓʱ

  598. printl("×î½ü5ÌõÈÕÖ¾:");
  599. var recentLogs = logManager.getLogs(undefined, 5);
  600. for (var i = 0; i < recentLogs.length; i++) {
  601.     printl("  " + recentLogs[i].level + " - " + recentLogs[i].message);
  602. }

  603. logManager.clear();

  604. sleep.second(2); // 2ÃëÑÓʱ

  605. // ==================== 9. ×Ö·û´®¹¤¾ßÀà ====================
  606. printl("");
  607. printl("=== 9. ×Ö·û´®¹¤¾ßÀà ===");

  608. function StringUtils() {}

  609. StringUtils.capitalize = function(str) {
  610.     if (!str) return str;
  611.     return str.charAt(0).toUpperCase() + str.slice(1);
  612. };

  613. StringUtils.camelCase = function(str) {
  614.     return str.replace(/[-_\s]+(.)?/g, function(match, chr) {
  615.         return chr ? chr.toUpperCase() : '';
  616.     });
  617. };

  618. StringUtils.kebabCase = function(str) {
  619.     return str.replace(/([a-z])([A-Z])/g, '$1-$2')
  620.               .replace(/[\s_]+/g, '-')
  621.               .toLowerCase();
  622. };

  623. StringUtils.truncate = function(str, length, suffix) {
  624.     suffix = suffix || '...';
  625.     if (str.length <= length) return str;
  626.     return str.substring(0, length - suffix.length) + suffix;
  627. };

  628. StringUtils.repeat = function(str, times) {
  629.     var result = '';
  630.     for (var i = 0; i < times; i++) {
  631.         result += str;
  632.     }
  633.     return result;
  634. };

  635. StringUtils.padLeft = function(str, length, char) {
  636.     char = char || ' ';
  637.     while (str.length < length) {
  638.         str = char + str;
  639.     }
  640.     return str;
  641. };

  642. StringUtils.padRight = function(str, length, char) {
  643.     char = char || ' ';
  644.     while (str.length < length) {
  645.         str += char;
  646.     }
  647.     return str;
  648. };

  649. StringUtils.stripHtml = function(html) {
  650.     return html.replace(/<[^>]*>/g, '');
  651. };

  652. StringUtils.escapeHtml = function(text) {
  653.     return text.replace(/[&<>"']/g, function(match) {
  654.         switch (match) {
  655.             case '&': return '&';
  656.             case '<': return '<';
  657.             case '>': return '>';
  658.             case '"': return '"';
  659.             case "'": return ''';
  660.         }
  661.     });
  662. };

  663. printl("StringUtils¹¤¾ßÀàÒѶ¨Òå");

  664. // ÑÝʾ×Ö·û´®²Ù×÷
  665. printl("Ê××Öĸ´óд: " + StringUtils.capitalize('hello world'));
  666. printl("ÍÕ·åÃüÃû: " + StringUtils.camelCase('hello-world-test'));
  667. printl("¶ÌºáÏßÃüÃû: " + StringUtils.kebabCase('helloWorldTest'));
  668. printl("½Ø¶Ï×Ö·û´®: " + StringUtils.truncate('ÕâÊÇÒ»¸öºÜ³¤µÄ×Ö·û´®', 10));
  669. printl("ÖØ¸´×Ö·û´®: " + StringUtils.repeat('*', 5));
  670. printl("×óÌî³ä: " + StringUtils.padLeft('42', 5, '0'));
  671. printl("ÓÒÌî³ä: " + StringUtils.padRight('42', 5, '0'));
  672. printl("È¥³ýHTML: " + StringUtils.stripHtml('<p>ÕâÊÇÒ»¶Î<b>HTML</b>Îı¾</p>'));
  673. printl("תÒåHTML: " + StringUtils.escapeHtml('<script>alert("XSS")</script>'));

  674. sleep.second(2); // 2ÃëÑÓʱ

  675. // ==================== 10. Êý×鹤¾ßÀà ====================
  676. printl("");
  677. printl("=== 10. Êý×鹤¾ßÀà ===");

  678. function ArrayUtils() {}

  679. ArrayUtils.unique = function(arr) {
  680.     var seen = {};
  681.     var result = [];
  682.    
  683.     for (var i = 0; i < arr.length; i++) {
  684.         var item = arr[i];
  685.         var key = typeof item + ':' + item;
  686.         if (!seen.hasOwnProperty(key)) {
  687.             seen[key] = true;
  688.             result.push(item);
  689.         }
  690.     }
  691.    
  692.     return result;
  693. };

  694. ArrayUtils.flatten = function(arr) {
  695.     var result = [];
  696.    
  697.     for (var i = 0; i < arr.length; i++) {
  698.         if (Array.isArray(arr[i])) {
  699.             result = result.concat(ArrayUtils.flatten(arr[i]));
  700.         } else {
  701.             result.push(arr[i]);
  702.         }
  703.     }
  704.    
  705.     return result;
  706. };

  707. ArrayUtils.chunk = function(arr, size) {
  708.     var result = [];
  709.    
  710.     for (var i = 0; i < arr.length; i += size) {
  711.         result.push(arr.slice(i, i + size));
  712.     }
  713.    
  714.     return result;
  715. };

  716. ArrayUtils.shuffle = function(arr) {
  717.     var shuffled = arr.slice();
  718.    
  719.     for (var i = shuffled.length - 1; i > 0; i--) {
  720.         var j = Math.floor(Math.random() * (i + 1));
  721.         var temp = shuffled[i];
  722.         shuffled[i] = shuffled[j];
  723.         shuffled[j] = temp;
  724.     }
  725.    
  726.     return shuffled;
  727. };

  728. ArrayUtils.groupBy = function(arr, key) {
  729.     var result = {};
  730.    
  731.     for (var i = 0; i < arr.length; i++) {
  732.         var item = arr[i];
  733.         var groupKey = item[key];
  734.         
  735.         if (!result.hasOwnProperty(groupKey)) {
  736.             result[groupKey] = [];
  737.         }
  738.         
  739.         result[groupKey].push(item);
  740.     }
  741.    
  742.     return result;
  743. };

  744. ArrayUtils.sum = function(arr, property) {
  745.     var total = 0;
  746.    
  747.     for (var i = 0; i < arr.length; i++) {
  748.         if (property) {
  749.             total += arr[i][property] || 0;
  750.         } else {
  751.             total += arr[i];
  752.         }
  753.     }
  754.    
  755.     return total;
  756. };

  757. ArrayUtils.average = function(arr, property) {
  758.     if (arr.length === 0) return 0;
  759.    
  760.     var sum = ArrayUtils.sum(arr, property);
  761.     return sum / arr.length;
  762. };

  763. printl("ArrayUtils¹¤¾ßÀàÒѶ¨Òå");

  764. // ÑÝʾÊý×é²Ù×÷
  765. var numbers = [1, 2, 3, 2, 4, 1, 5, 3];
  766. printl("È¥ÖØ: " + JSON.stringify(ArrayUtils.unique(numbers)));

  767. var nested = [1, [2, 3], [4, [5, 6]], 7];
  768. printl("±âƽ»¯: " + JSON.stringify(ArrayUtils.flatten(nested)));

  769. var largeArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  770. printl("·Ö¿é: " + JSON.stringify(ArrayUtils.chunk(largeArray, 3)));

  771. var cards = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'];
  772. printl("Ï´ÅÆÇ°: " + JSON.stringify(cards));
  773. var shuffledCards = ArrayUtils.shuffle(cards);
  774. printl("Ï´ÅÆºó: " + JSON.stringify(shuffledCards));

  775. var users = [
  776.     { name: 'ÕÅÈý', age: 25, department: '¼¼Êõ²¿' },
  777.     { name: 'ÀîËÄ', age: 30, department: 'Êг¡²¿' },
  778.     { name: 'ÍõÎå', age: 28, department: '¼¼Êõ²¿' },
  779.     { name: 'ÕÔÁù', age: 35, department: '²ÆÎñ²¿' }
  780. ];

  781. printl("°´²¿ÃÅ·Ö×é: " + JSON.stringify(ArrayUtils.groupBy(users, 'department')));
  782. printl("ÄêÁä×ܺÍ: " + ArrayUtils.sum(users, 'age'));
  783. printl("ƽ¾ùÄêÁä: " + ArrayUtils.average(users, 'age'));

  784. sleep.second(2); // 2ÃëÑÓʱ

  785. // ==================== ×ܽá ====================
  786. printl("");
  787. printl("=== ʵÓù¤¾ß¼¯ÑÝʾÍê³É ===");
  788. printl("&#128161; ÕâЩ¹¤¾ßÔÚʵ¼ÊÏîÄ¿¿ª·¢Öзdz£ÊµÓã¡");
  789. printl("°üº¬£ºÎļþ¹ÜÀí¡¢ÍøÂçÇëÇó¡¢Êý¾ÝÑéÖ¤¡¢»º´æ¡¢Ê¼þϵͳ¡¢ÈÎÎñ¶ÓÁС¢ÅäÖùÜÀí¡¢ÈÕÖ¾¡¢×Ö·û´®ºÍÊý×鹤¾ß");
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-5-15 23:51 , Processed in 0.514356 second(s), 34 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí