|
|
AIWROKÈí¼þ½Å±¾JSONת»»Ê¾Àý
- // AIWROK ʵÓù¤¾ß¼¯ - ÍêÕûʾÀý (ES5 ¼æÈÝ)
- // °üº¬£ºÎļþ²Ù×÷¡¢ÍøÂçÇëÇó¡¢Êý¾Ý´¦Àí¡¢UI½»»¥µÈʵÓù¦ÄÜ
- // ES5ϵͳ°²×¿ JavaScriptÒýÇæRhino
- //🍎½»Á÷QQȺ711841924Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639
- // ==================== 1. Îļþϵͳ¹ÜÀí¹¤¾ß ====================
- printl("=== 1. Îļþϵͳ¹ÜÀí¹¤¾ß ===");
- function FileManager() {
- this.basePath = '/sdcard/AIWROK/';
- }
- FileManager.prototype.createDirectory = function(path) {
- try {
- var fullPath = this.basePath + path;
- // Ä£Äâ´´½¨Ä¿Â¼
- printl("´´½¨Ä¿Â¼: " + fullPath);
- return true;
- } catch (e) {
- printl("´´½¨Ä¿Â¼Ê§°Ü: " + e);
- return false;
- }
- };
- FileManager.prototype.writeFile = function(filename, content) {
- try {
- var fullPath = this.basePath + filename;
- // Ä£ÄâдÈëÎļþ
- printl("дÈëÎļþ: " + fullPath);
- printl("ÄÚÈݳ¤¶È: " + content.length);
- return true;
- } catch (e) {
- printl("дÈëÎļþʧ°Ü: " + e);
- return false;
- }
- };
- FileManager.prototype.readFile = function(filename) {
- try {
- var fullPath = this.basePath + filename;
- // Ä£Äâ¶ÁÈ¡Îļþ
- printl("¶ÁÈ¡Îļþ: " + fullPath);
- return "Ä£ÄâÎļþÄÚÈÝ: " + filename;
- } catch (e) {
- printl("¶ÁÈ¡Îļþʧ°Ü: " + e);
- return null;
- }
- };
- FileManager.prototype.listDirectory = function(path) {
- try {
- var fullPath = this.basePath + path;
- // Ä£ÄâÁгöĿ¼ÄÚÈÝ
- printl("ÁгöĿ¼: " + fullPath);
- return ['file1.txt', 'file2.json', 'subdir'];
- } catch (e) {
- printl("ÁгöĿ¼ʧ°Ü: " + e);
- return [];
- }
- };
- var fileManager = new FileManager();
- printl("FileManagerʵÀýÒÑ´´½¨");
- // ÑÝʾÎļþ²Ù×÷
- fileManager.createDirectory('projects');
- fileManager.createDirectory('backups');
- fileManager.writeFile('config.json', '{"theme": "dark", "version": "1.0"}');
- fileManager.readFile('config.json');
- fileManager.listDirectory('projects');
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 2. ÍøÂçÇëÇó¹ÜÀíÆ÷ ====================
- printl("");
- printl("=== 2. ÍøÂçÇëÇó¹ÜÀíÆ÷ ===");
- function HttpClient() {
- this.baseUrl = 'https://api.example.com';
- this.headers = {
- 'Content-Type': 'application/json',
- 'User-Agent': 'AIWROK-Client/1.0'
- };
- }
- HttpClient.prototype.get = function(endpoint, params) {
- params = params || {};
- var url = this.baseUrl + endpoint;
-
- // Ìí¼Ó²éѯ²ÎÊý
- var queryString = '';
- for (var key in params) {
- if (params.hasOwnProperty(key)) {
- queryString += (queryString ? '&' : '?') + key + '=' + encodeURIComponent(params[key]);
- }
- }
-
- printl("GETÇëÇó: " + (url + queryString));
- printl("Headers: " + JSON.stringify(this.headers));
-
- // Ä£ÄâÏìÓ¦
- return {
- status: 200,
- data: { message: '³É¹¦»ñÈ¡Êý¾Ý', endpoint: endpoint },
- headers: { 'content-type': 'application/json' }
- };
- };
- HttpClient.prototype.post = function(endpoint, data) {
- var url = this.baseUrl + endpoint;
-
- printl("POSTÇëÇó: " + url);
- printl("ÇëÇóÊý¾Ý: " + JSON.stringify(data));
- printl("Headers: " + JSON.stringify(this.headers));
-
- // Ä£ÄâÏìÓ¦
- return {
- status: 201,
- data: { message: 'Êý¾Ý´´½¨³É¹¦', id: Math.floor(Math.random() * 1000) },
- headers: { 'content-type': 'application/json' }
- };
- };
- HttpClient.prototype.put = function(endpoint, data) {
- var url = this.baseUrl + endpoint;
-
- printl("PUTÇëÇó: " + url);
- printl("¸üÐÂÊý¾Ý: " + JSON.stringify(data));
-
- // Ä£ÄâÏìÓ¦
- return {
- status: 200,
- data: { message: 'Êý¾Ý¸üгɹ¦' },
- headers: { 'content-type': 'application/json' }
- };
- };
- HttpClient.prototype.delete = function(endpoint) {
- var url = this.baseUrl + endpoint;
-
- printl("DELETEÇëÇó: " + url);
-
- // Ä£ÄâÏìÓ¦
- return {
- status: 200,
- data: { message: 'Êý¾Ýɾ³ý³É¹¦' },
- headers: { 'content-type': 'application/json' }
- };
- };
- var httpClient = new HttpClient();
- printl("HttpClientʵÀýÒÑ´´½¨");
- // ÑÝÊ¾ÍøÂçÇëÇó
- var getUserResponse = httpClient.get('/users/123', { fields: 'name,email' });
- printl("GETÏìӦ״̬: " + getUserResponse.status);
- printl("GETÏìÓ¦Êý¾Ý: " + JSON.stringify(getUserResponse.data));
- sleep.second(2); // 2ÃëÑÓʱ
- var createUserResponse = httpClient.post('/users', {
- name: 'ÕÅÈý',
- email: 'zhangsan@example.com',
- age: 25
- });
- printl("POSTÏìӦ״̬: " + createUserResponse.status);
- printl("POSTÏìÓ¦Êý¾Ý: " + JSON.stringify(createUserResponse.data));
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 3. Êý¾ÝÑéÖ¤Æ÷ ====================
- printl("");
- printl("=== 3. Êý¾ÝÑéÖ¤Æ÷ ===");
- function Validator() {}
- Validator.isEmail = function(email) {
- var re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
- return re.test(email);
- };
- Validator.isPhone = function(phone) {
- var re = /^1[3-9]\d{9}$/;
- return re.test(phone);
- };
- Validator.isURL = function(url) {
- var re = /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
- return re.test(url);
- };
- Validator.isEmpty = function(value) {
- if (value === null || value === undefined) return true;
- if (typeof value === 'string') return value.trim().length === 0;
- if (Array.isArray(value)) return value.length === 0;
- if (typeof value === 'object') return Object.keys(value).length === 0;
- return false;
- };
- Validator.isNumber = function(value) {
- return typeof value === 'number' && !isNaN(value);
- };
- Validator.isBoolean = function(value) {
- return typeof value === 'boolean';
- };
- Validator.validateForm = function(formData, rules) {
- var errors = {};
- var isValid = true;
-
- for (var field in rules) {
- if (rules.hasOwnProperty(field)) {
- var rule = rules[field];
- var value = formData[field];
-
- if (rule.required && Validator.isEmpty(value)) {
- errors[field] = rule.message || field + '²»ÄÜΪ¿Õ';
- isValid = false;
- continue;
- }
-
- if (!Validator.isEmpty(value)) {
- if (rule.type === 'email' && !Validator.isEmail(value)) {
- errors[field] = rule.message || field + '¸ñʽ²»ÕýÈ·';
- isValid = false;
- } else if (rule.type === 'phone' && !Validator.isPhone(value)) {
- errors[field] = rule.message || field + '¸ñʽ²»ÕýÈ·';
- isValid = false;
- } else if (rule.type === 'url' && !Validator.isURL(value)) {
- errors[field] = rule.message || field + '¸ñʽ²»ÕýÈ·';
- isValid = false;
- } else if (rule.minLength && value.length < rule.minLength) {
- errors[field] = rule.message || field + '³¤¶È²»ÄÜÉÙÓÚ' + rule.minLength;
- isValid = false;
- } else if (rule.maxLength && value.length > rule.maxLength) {
- errors[field] = rule.message || field + '³¤¶È²»Äܳ¬¹ý' + rule.maxLength;
- isValid = false;
- }
- }
- }
- }
-
- return {
- isValid: isValid,
- errors: errors
- };
- };
- printl("Validator¹¤¾ßÀàÒѶ¨Òå");
- // ÑÝʾÊý¾ÝÑéÖ¤
- var testData = {
- email: 'test@example.com',
- phone: '13800138000',
- url: 'https://www.example.com',
- empty: '',
- number: 42,
- boolean: true
- };
- printl("ÓÊÏäÑéÖ¤: " + Validator.isEmail(testData.email));
- printl("ÊÖ»úÑéÖ¤: " + Validator.isPhone(testData.phone));
- printl("URLÑéÖ¤: " + Validator.isURL(testData.url));
- printl("¿ÕÖµÑéÖ¤: " + Validator.isEmpty(testData.empty));
- printl("Êý×ÖÑéÖ¤: " + Validator.isNumber(testData.number));
- printl("²¼¶ûÑéÖ¤: " + Validator.isBoolean(testData.boolean));
- sleep.second(2); // 2ÃëÑÓʱ
- // ±íµ¥Ñé֤ʾÀý
- var formRules = {
- username: { required: true, minLength: 3, maxLength: 20, message: 'Óû§Ãû3-20¸ö×Ö·û' },
- email: { required: true, type: 'email', message: 'ÓÊÏä¸ñʽ²»ÕýÈ·' },
- phone: { required: false, type: 'phone', message: 'ÊÖ»úºÅ¸ñʽ²»ÕýÈ·' }
- };
- var formData = {
- username: 'john_doe',
- email: 'john@example.com',
- phone: '13800138000'
- };
- var validationResult = Validator.validateForm(formData, formRules);
- printl("±íµ¥ÑéÖ¤½á¹û: " + JSON.stringify(validationResult));
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 4. »º´æ¹ÜÀíÆ÷ ====================
- printl("");
- printl("=== 4. »º´æ¹ÜÀíÆ÷ ===");
- function CacheManager() {
- this.cache = {};
- this.ttl = {}; // time to live
- }
- CacheManager.prototype.set = function(key, value, ttlSeconds) {
- ttlSeconds = ttlSeconds || 3600; // ĬÈÏ1Сʱ
- this.cache[key] = value;
- this.ttl[key] = Date.now() + (ttlSeconds * 1000);
- printl("ÉèÖûº´æ: " + key + " TTL: " + ttlSeconds + " Ãë");
- };
- CacheManager.prototype.get = function(key) {
- if (!this.cache.hasOwnProperty(key)) {
- return null;
- }
-
- // ¼ì²éÊÇ·ñ¹ýÆÚ
- if (Date.now() > this.ttl[key]) {
- delete this.cache[key];
- delete this.ttl[key];
- printl("»º´æÒѹýÆÚ: " + key);
- return null;
- }
-
- printl("»ñÈ¡»º´æ: " + key);
- return this.cache[key];
- };
- CacheManager.prototype.remove = function(key) {
- if (this.cache.hasOwnProperty(key)) {
- delete this.cache[key];
- delete this.ttl[key];
- printl("ɾ³ý»º´æ: " + key);
- return true;
- }
- return false;
- };
- CacheManager.prototype.clear = function() {
- this.cache = {};
- this.ttl = {};
- printl("Çå¿ÕËùÓлº´æ");
- };
- CacheManager.prototype.size = function() {
- return Object.keys(this.cache).length;
- };
- CacheManager.prototype.has = function(key) {
- return this.cache.hasOwnProperty(key) && Date.now() <= this.ttl[key];
- };
- var cacheManager = new CacheManager();
- printl("CacheManagerʵÀýÒÑ´´½¨");
- // ÑÝʾ»º´æ²Ù×÷
- cacheManager.set('user_profile', { name: 'ÕÅÈý', age: 25 }, 300); // 5·ÖÖÓTTL
- cacheManager.set('app_config', { theme: 'dark', language: 'zh-CN' }, 3600); // 1СʱTTL
- printl("»º´æ´óС: " + cacheManager.size());
- printl("ÊÇ·ñ´æÔÚuser_profile: " + cacheManager.has('user_profile'));
- var userProfile = cacheManager.get('user_profile');
- printl("»ñÈ¡Óû§×ÊÁÏ: " + JSON.stringify(userProfile));
- sleep.second(2); // 2ÃëÑÓʱ
- cacheManager.remove('user_profile');
- printl("ɾ³ýºó»º´æ´óС: " + cacheManager.size());
- cacheManager.clear();
- printl("Çå¿Õºó»º´æ´óС: " + cacheManager.size());
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 5. ʼþ×ÜÏß ====================
- printl("");
- printl("=== 5. ʼþ×ÜÏß ===");
- function EventBus() {
- this.events = {};
- }
- EventBus.prototype.on = function(event, callback) {
- if (!this.events[event]) {
- this.events[event] = [];
- }
- this.events[event].push(callback);
- printl("×¢²áʼþ¼àÌýÆ÷: " + event);
- };
- EventBus.prototype.off = function(event, callback) {
- if (!this.events[event]) return;
-
- if (callback) {
- var index = this.events[event].indexOf(callback);
- if (index > -1) {
- this.events[event].splice(index, 1);
- }
- } else {
- delete this.events[event];
- }
- printl("ÒÆ³ýʼþ¼àÌýÆ÷: " + event);
- };
- EventBus.prototype.emit = function(event, data) {
- if (!this.events[event]) return;
-
- printl("´¥·¢Ê¼þ: " + event + " Êý¾Ý: " + JSON.stringify(data));
-
- var callbacks = this.events[event].slice(); // ¸´ÖÆÊý×é±ÜÃâÐÞ¸ÄÎÊÌâ
- for (var i = 0; i < callbacks.length; i++) {
- try {
- callbacks[i](data);
- } catch (e) {
- printl("ʼþ»Øµ÷Ö´ÐдíÎó: " + e);
- }
- }
- };
- EventBus.prototype.once = function(event, callback) {
- var self = this;
- var wrapper = function(data) {
- callback(data);
- self.off(event, wrapper);
- };
- this.on(event, wrapper);
- printl("×¢²áÒ»´ÎÐÔʼþ¼àÌýÆ÷: " + event);
- };
- var eventBus = new EventBus();
- printl("EventBusʵÀýÒÑ´´½¨");
- // ÑÝʾʼþϵͳ
- eventBus.on('user_login', function(data) {
- printl("Óû§µÇ¼Ê¼þ´¦Àí: " + data.username);
- });
- eventBus.on('data_loaded', function(data) {
- printl("Êý¾Ý¼ÓÔØÍê³É: " + data.count + " Ìõ¼Ç¼");
- });
- eventBus.once('app_init', function(data) {
- printl("Ó¦Óóõʼ»¯Íê³É: " + data.version);
- });
- // ´¥·¢Ê¼þ
- eventBus.emit('user_login', { username: 'john_doe', timestamp: new Date() });
- eventBus.emit('data_loaded', { count: 100, source: 'database' });
- eventBus.emit('app_init', { version: '1.0.0' });
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 6. ÈÎÎñ¶ÓÁÐ ====================
- printl("");
- printl("=== 6. ÈÎÎñ¶ÓÁÐ ===");
- function TaskQueue(concurrency) {
- concurrency = concurrency || 1;
- this.queue = [];
- this.running = 0;
- this.concurrency = concurrency;
- this.results = [];
- }
- TaskQueue.prototype.add = function(task) {
- this.queue.push(task);
- this.process();
- };
- TaskQueue.prototype.process = function() {
- var self = this;
-
- while (this.running < this.concurrency && this.queue.length > 0) {
- var task = this.queue.shift();
- this.running++;
-
- // Òì²½Ö´ÐÐÈÎÎñ
- (function(currentTask, taskId) {
- setTimeout(function() {
- try {
- var result = currentTask();
- self.results.push({ id: taskId, result: result, success: true });
- printl("ÈÎÎñÍê³É: " + taskId);
- } catch (e) {
- self.results.push({ id: taskId, error: e.toString(), success: false });
- printl("ÈÎÎñʧ°Ü: " + taskId + " " + e.toString());
- } finally {
- self.running--;
- self.process(); // ´¦ÀíÏÂÒ»¸öÈÎÎñ
- }
- }, 100); // Ä£ÄâÒì²½ÑÓ³Ù
- })(task, this.results.length + 1);
- }
- };
- TaskQueue.prototype.getResults = function() {
- return this.results;
- };
- TaskQueue.prototype.clear = function() {
- this.queue = [];
- this.results = [];
- this.running = 0;
- };
- var taskQueue = new TaskQueue(2); // ²¢·¢¶ÈΪ2
- printl("TaskQueueʵÀýÒÑ´´½¨£¬²¢·¢¶È: " + taskQueue.concurrency);
- // Ìí¼ÓÈÎÎñ
- taskQueue.add(function() {
- printl("Ö´ÐÐÈÎÎñ1: Êý¾ÝÇåÏ´");
- return { processed: 100, cleaned: 95 };
- });
- taskQueue.add(function() {
- printl("Ö´ÐÐÈÎÎñ2: ͼƬѹËõ");
- return { originalSize: '2MB', compressedSize: '500KB' };
- });
- taskQueue.add(function() {
- printl("Ö´ÐÐÈÎÎñ3: ÊÓÆµ×ªÂë");
- return { duration: '00:05:30', format: 'mp4' };
- });
- sleep.second(3); // µÈ´ýÈÎÎñÍê³É
- printl("ÈÎÎñÖ´Ðнá¹û: " + JSON.stringify(taskQueue.getResults()));
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 7. ÅäÖùÜÀíÆ÷ ====================
- printl("");
- printl("=== 7. ÅäÖùÜÀíÆ÷ ===");
- function ConfigManager() {
- this.configs = {};
- this.defaults = {};
- }
- ConfigManager.prototype.setDefault = function(key, value) {
- this.defaults[key] = value;
- if (!this.configs.hasOwnProperty(key)) {
- this.configs[key] = value;
- }
- };
- ConfigManager.prototype.set = function(key, value) {
- this.configs[key] = value;
- printl("ÉèÖÃÅäÖÃ: " + key + " = " + JSON.stringify(value));
- };
- ConfigManager.prototype.get = function(key) {
- if (this.configs.hasOwnProperty(key)) {
- return this.configs[key];
- }
- return this.defaults.hasOwnProperty(key) ? this.defaults[key] : null;
- };
- ConfigManager.prototype.getAll = function() {
- var allConfigs = {};
-
- // ºÏ²¢Ä¬ÈÏÅäÖúÍ×Ô¶¨ÒåÅäÖÃ
- for (var key in this.defaults) {
- allConfigs[key] = this.defaults[key];
- }
- for (var key in this.configs) {
- allConfigs[key] = this.configs[key];
- }
-
- return allConfigs;
- };
- ConfigManager.prototype.reset = function(key) {
- if (key) {
- if (this.defaults.hasOwnProperty(key)) {
- this.configs[key] = this.defaults[key];
- } else {
- delete this.configs[key];
- }
- } else {
- this.configs = {};
- }
- printl("ÖØÖÃÅäÖÃ: " + (key || "È«²¿"));
- };
- var configManager = new ConfigManager();
- printl("ConfigManagerʵÀýÒÑ´´½¨");
- // ÉèÖÃĬÈÏÅäÖÃ
- configManager.setDefault('theme', 'light');
- configManager.setDefault('language', 'en');
- configManager.setDefault('debug', false);
- // ÉèÖÃ×Ô¶¨ÒåÅäÖÃ
- configManager.set('theme', 'dark');
- configManager.set('fontSize', 14);
- configManager.set('autoSave', true);
- printl("µ±Ç°Ö÷Ìâ: " + configManager.get('theme'));
- printl("ÓïÑÔÉèÖÃ: " + configManager.get('language'));
- printl("×ÖÌå´óС: " + configManager.get('fontSize'));
- printl("×Ô¶¯±£´æ: " + configManager.get('autoSave'));
- printl("µ÷ÊÔģʽ: " + configManager.get('debug'));
- printl("ËùÓÐÅäÖÃ: " + JSON.stringify(configManager.getAll()));
- sleep.second(2); // 2ÃëÑÓʱ
- configManager.reset('theme');
- printl("ÖØÖÃÖ÷Ìâºó: " + configManager.get('theme'));
- configManager.reset();
- printl("ÖØÖÃËùÓÐÅäÖúó: " + JSON.stringify(configManager.getAll()));
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 8. ÈÕÖ¾¹ÜÀíÆ÷ ====================
- printl("");
- printl("=== 8. ÈÕÖ¾¹ÜÀíÆ÷ ===");
- function LogManager() {
- this.logs = [];
- this.maxLogs = 1000;
- this.levels = {
- DEBUG: 0,
- INFO: 1,
- WARN: 2,
- ERROR: 3
- };
- this.currentLevel = this.levels.INFO;
- }
- LogManager.prototype.log = function(level, message, data) {
- if (level < this.currentLevel) return;
-
- var logEntry = {
- timestamp: new Date(),
- level: this.getLevelName(level),
- message: message,
- data: data || null
- };
-
- this.logs.push(logEntry);
-
- // ÏÞÖÆÈÕÖ¾ÊýÁ¿
- if (this.logs.length > this.maxLogs) {
- this.logs.shift();
- }
-
- // Êä³öµ½¿ØÖÆÌ¨
- var prefix = '[' + logEntry.timestamp.toISOString() + '] [' + logEntry.level + '] ';
- printl(prefix + message);
- if (data) {
- printl(' Êý¾Ý: ' + JSON.stringify(data));
- }
- };
- LogManager.prototype.debug = function(message, data) {
- this.log(this.levels.DEBUG, message, data);
- };
- LogManager.prototype.info = function(message, data) {
- this.log(this.levels.INFO, message, data);
- };
- LogManager.prototype.warn = function(message, data) {
- this.log(this.levels.WARN, message, data);
- };
- LogManager.prototype.error = function(message, data) {
- this.log(this.levels.ERROR, message, data);
- };
- LogManager.prototype.getLevelName = function(level) {
- for (var name in this.levels) {
- if (this.levels[name] === level) {
- return name;
- }
- }
- return 'UNKNOWN';
- };
- LogManager.prototype.getLogs = function(level, limit) {
- limit = limit || 50;
- var filteredLogs = this.logs;
-
- if (level !== undefined) {
- filteredLogs = this.logs.filter(function(log) {
- return log.level === this.getLevelName(level);
- }.bind(this));
- }
-
- return filteredLogs.slice(-limit);
- };
- LogManager.prototype.clear = function() {
- this.logs = [];
- printl("ÈÕÖ¾ÒÑÇå¿Õ");
- };
- var logManager = new LogManager();
- printl("LogManagerʵÀýÒÑ´´½¨");
- // ÑÝʾÈÕÖ¾¼Ç¼
- logManager.debug("µ÷ÊÔÐÅÏ¢", { detail: "ÕâÊǵ÷ÊÔ¼¶±ðµÄÈÕÖ¾" });
- logManager.info("Ó¦ÓÃÆô¶¯", { version: "1.0.0", environment: "production" });
- logManager.warn("ÄÚ´æÊ¹Óýϸß", { used: "80%", total: "1GB" });
- logManager.error("Êý¾Ý¿âÁ¬½Óʧ°Ü", { host: "localhost", port: 3306 });
- sleep.second(2); // 2ÃëÑÓʱ
- printl("×î½ü5ÌõÈÕÖ¾:");
- var recentLogs = logManager.getLogs(undefined, 5);
- for (var i = 0; i < recentLogs.length; i++) {
- printl(" " + recentLogs[i].level + " - " + recentLogs[i].message);
- }
- logManager.clear();
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 9. ×Ö·û´®¹¤¾ßÀà ====================
- printl("");
- printl("=== 9. ×Ö·û´®¹¤¾ßÀà ===");
- function StringUtils() {}
- StringUtils.capitalize = function(str) {
- if (!str) return str;
- return str.charAt(0).toUpperCase() + str.slice(1);
- };
- StringUtils.camelCase = function(str) {
- return str.replace(/[-_\s]+(.)?/g, function(match, chr) {
- return chr ? chr.toUpperCase() : '';
- });
- };
- StringUtils.kebabCase = function(str) {
- return str.replace(/([a-z])([A-Z])/g, '$1-$2')
- .replace(/[\s_]+/g, '-')
- .toLowerCase();
- };
- StringUtils.truncate = function(str, length, suffix) {
- suffix = suffix || '...';
- if (str.length <= length) return str;
- return str.substring(0, length - suffix.length) + suffix;
- };
- StringUtils.repeat = function(str, times) {
- var result = '';
- for (var i = 0; i < times; i++) {
- result += str;
- }
- return result;
- };
- StringUtils.padLeft = function(str, length, char) {
- char = char || ' ';
- while (str.length < length) {
- str = char + str;
- }
- return str;
- };
- StringUtils.padRight = function(str, length, char) {
- char = char || ' ';
- while (str.length < length) {
- str += char;
- }
- return str;
- };
- StringUtils.stripHtml = function(html) {
- return html.replace(/<[^>]*>/g, '');
- };
- StringUtils.escapeHtml = function(text) {
- return text.replace(/[&<>"']/g, function(match) {
- switch (match) {
- case '&': return '&';
- case '<': return '<';
- case '>': return '>';
- case '"': return '"';
- case "'": return ''';
- }
- });
- };
- printl("StringUtils¹¤¾ßÀàÒѶ¨Òå");
- // ÑÝʾ×Ö·û´®²Ù×÷
- printl("Ê××Öĸ´óд: " + StringUtils.capitalize('hello world'));
- printl("ÍÕ·åÃüÃû: " + StringUtils.camelCase('hello-world-test'));
- printl("¶ÌºáÏßÃüÃû: " + StringUtils.kebabCase('helloWorldTest'));
- printl("½Ø¶Ï×Ö·û´®: " + StringUtils.truncate('ÕâÊÇÒ»¸öºÜ³¤µÄ×Ö·û´®', 10));
- printl("ÖØ¸´×Ö·û´®: " + StringUtils.repeat('*', 5));
- printl("×óÌî³ä: " + StringUtils.padLeft('42', 5, '0'));
- printl("ÓÒÌî³ä: " + StringUtils.padRight('42', 5, '0'));
- printl("È¥³ýHTML: " + StringUtils.stripHtml('<p>ÕâÊÇÒ»¶Î<b>HTML</b>Îı¾</p>'));
- printl("תÒåHTML: " + StringUtils.escapeHtml('<script>alert("XSS")</script>'));
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== 10. Êý×鹤¾ßÀà ====================
- printl("");
- printl("=== 10. Êý×鹤¾ßÀà ===");
- function ArrayUtils() {}
- ArrayUtils.unique = function(arr) {
- var seen = {};
- var result = [];
-
- for (var i = 0; i < arr.length; i++) {
- var item = arr[i];
- var key = typeof item + ':' + item;
- if (!seen.hasOwnProperty(key)) {
- seen[key] = true;
- result.push(item);
- }
- }
-
- return result;
- };
- ArrayUtils.flatten = function(arr) {
- var result = [];
-
- for (var i = 0; i < arr.length; i++) {
- if (Array.isArray(arr[i])) {
- result = result.concat(ArrayUtils.flatten(arr[i]));
- } else {
- result.push(arr[i]);
- }
- }
-
- return result;
- };
- ArrayUtils.chunk = function(arr, size) {
- var result = [];
-
- for (var i = 0; i < arr.length; i += size) {
- result.push(arr.slice(i, i + size));
- }
-
- return result;
- };
- ArrayUtils.shuffle = function(arr) {
- var shuffled = arr.slice();
-
- for (var i = shuffled.length - 1; i > 0; i--) {
- var j = Math.floor(Math.random() * (i + 1));
- var temp = shuffled[i];
- shuffled[i] = shuffled[j];
- shuffled[j] = temp;
- }
-
- return shuffled;
- };
- ArrayUtils.groupBy = function(arr, key) {
- var result = {};
-
- for (var i = 0; i < arr.length; i++) {
- var item = arr[i];
- var groupKey = item[key];
-
- if (!result.hasOwnProperty(groupKey)) {
- result[groupKey] = [];
- }
-
- result[groupKey].push(item);
- }
-
- return result;
- };
- ArrayUtils.sum = function(arr, property) {
- var total = 0;
-
- for (var i = 0; i < arr.length; i++) {
- if (property) {
- total += arr[i][property] || 0;
- } else {
- total += arr[i];
- }
- }
-
- return total;
- };
- ArrayUtils.average = function(arr, property) {
- if (arr.length === 0) return 0;
-
- var sum = ArrayUtils.sum(arr, property);
- return sum / arr.length;
- };
- printl("ArrayUtils¹¤¾ßÀàÒѶ¨Òå");
- // ÑÝʾÊý×é²Ù×÷
- var numbers = [1, 2, 3, 2, 4, 1, 5, 3];
- printl("È¥ÖØ: " + JSON.stringify(ArrayUtils.unique(numbers)));
- var nested = [1, [2, 3], [4, [5, 6]], 7];
- printl("±âƽ»¯: " + JSON.stringify(ArrayUtils.flatten(nested)));
- var largeArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
- printl("·Ö¿é: " + JSON.stringify(ArrayUtils.chunk(largeArray, 3)));
- var cards = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'];
- printl("Ï´ÅÆÇ°: " + JSON.stringify(cards));
- var shuffledCards = ArrayUtils.shuffle(cards);
- printl("Ï´ÅÆºó: " + JSON.stringify(shuffledCards));
- var users = [
- { name: 'ÕÅÈý', age: 25, department: '¼¼Êõ²¿' },
- { name: 'ÀîËÄ', age: 30, department: 'Êг¡²¿' },
- { name: 'ÍõÎå', age: 28, department: '¼¼Êõ²¿' },
- { name: 'ÕÔÁù', age: 35, department: '²ÆÎñ²¿' }
- ];
- printl("°´²¿ÃÅ·Ö×é: " + JSON.stringify(ArrayUtils.groupBy(users, 'department')));
- printl("ÄêÁä×ܺÍ: " + ArrayUtils.sum(users, 'age'));
- printl("ƽ¾ùÄêÁä: " + ArrayUtils.average(users, 'age'));
- sleep.second(2); // 2ÃëÑÓʱ
- // ==================== ×ܽá ====================
- printl("");
- printl("=== ʵÓù¤¾ß¼¯ÑÝʾÍê³É ===");
- printl("💡 ÕâЩ¹¤¾ßÔÚʵ¼ÊÏîÄ¿¿ª·¢Öзdz£ÊµÓã¡");
- printl("°üº¬£ºÎļþ¹ÜÀí¡¢ÍøÂçÇëÇó¡¢Êý¾ÝÑéÖ¤¡¢»º´æ¡¢Ê¼þϵͳ¡¢ÈÎÎñ¶ÓÁС¢ÅäÖùÜÀí¡¢ÈÕÖ¾¡¢×Ö·û´®ºÍÊý×鹤¾ß");
¸´ÖÆ´úÂë
|
|