B2BÍøÂçÈí¼þ

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

AIWROKÈí¼þ¶ÔÏ󹤾ߺ¯Êý¿âÀý×Ó

[¸´ÖÆÁ´½Ó]

1010

Ö÷Ìâ

1015

Ìû×Ó

7317

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7317
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
AIWROKÈí¼þ¶ÔÏ󹤾ߺ¯Êý¿âÀý×Ó


AIWROKÈí¼þ¶ÔÏ󹤾ߺ¯Êý¿âÀý×Ó B2BÍøÂçÈí¼þ

AIWROKÈí¼þ¶ÔÏ󹤾ߺ¯Êý¿âÀý×Ó B2BÍøÂçÈí¼þ

  1. /**
  2. * //🍎½»Á÷QQȺ711841924Ⱥһ£¬Æ»¹ûÄÚ²âȺ£¬528816639
  3. * ͨÓöÔÏó²Ù×÷¹¤¾ßº¯Êý¿â
  4. * ÊÊÓñ¾ÎĵµES5ϵͳ°²×¿ JavaScriptÒýÇæRhino
  5. * ÌṩʵÓõĶÔÏó²Ù×÷·½·¨£¬½â¾öʵ¼ÊÏîÄ¿Öеij£¼ûÎÊÌâ
  6. */

  7. print.log("¿ªÊ¼Ö´ÐÐÈÕÖ¾´°¿Ú²Ù×÷");
  8. print.log("1. ÏÔʾÈÕÖ¾´°¿Ú");
  9. printl( logWindow.show())
  10. print.log("ÈÕÖ¾´°¿ÚÏÔʾÍê³É");

  11. print.log("2. Çå¿ÕÈÕÖ¾´°¿Ú");
  12. printl(logWindow.clear())
  13. print.log("ÈÕÖ¾´°¿ÚÇå¿ÕÍê³É");

  14. print.log("3. ÉèÖÃÈÕÖ¾´°¿Ú¸ß¶ÈΪ2500");
  15. printl(logWindow.setHeight(2500))
  16. print.log("ÈÕÖ¾´°¿Ú¸ß¶ÈÉèÖÃÍê³É");

  17. print.log("4. ÉèÖÃÈÕÖ¾´°¿Ú¿í¶ÈΪ1000");
  18. printl(logWindow.setWidth(1000))
  19. print.log("ÈÕÖ¾´°¿Ú¿í¶ÈÉèÖÃÍê³É");

  20. print.log("5. ÉèÖÃÈÕÖ¾´°¿ÚΪ²»¿Éµã»÷ģʽ");
  21. printl(logWindow.setNoClickModel())
  22. print.log("ÈÕÖ¾´°¿Ú²»¿Éµã»÷ģʽÉèÖÃÍê³É");
  23. print.log("ËùÓÐÈÕÖ¾´°¿Ú²Ù×÷Ö´ÐÐÍê±Ï");

  24. // ºÏ²¢¶ÔÏó - ½«¶à¸ö¶ÔÏóºÏ²¢ÎªÒ»¸öжÔÏó
  25. function mergeObjects() {
  26.     print.log("Ö´ÐÐmergeObjectsº¯Êý - ºÏ²¢¶à¸ö¶ÔÏó");
  27.     var target = {};
  28.     var i, source;
  29.    
  30.     for (i = 0; i < arguments.length; i++) {
  31.         source = arguments[i];
  32.         print.log("  - ºÏ²¢µÚ" + (i + 1) + "¸ö¶ÔÏó: " + safeStringify(source));
  33.         if (source != null && typeof source === 'object') {
  34.             for (var key in source) {
  35.                 if (source.hasOwnProperty(key)) {
  36.                     target[key] = source[key];
  37.                 }
  38.             }
  39.         }
  40.     }
  41.    
  42.     print.log("  - ºÏ²¢½á¹û: " + safeStringify(target));
  43.     print.log("  - ½á¹û: ¿½±´³É¹¦£¬Ä¿±ê¶ÔÏó±äΪ: " + safeStringify(target));
  44.     return target;
  45. }

  46. // »ñÈ¡¶ÔÏó¼üÖµ¶Ô - ·µ»Ø[[key1, value1], [key2, value2], ...]¸ñʽÊý×é
  47. function getObjectEntries(obj) {
  48.     print.log("Ö´ÐÐgetObjectEntriesº¯Êý - »ñÈ¡¶ÔÏó¼üÖµ¶Ô");
  49.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  50.     var entries = [];
  51.     var key;
  52.    
  53.     if (obj != null && typeof obj === 'object') {
  54.         for (key in obj) {
  55.             if (obj.hasOwnProperty(key)) {
  56.                 entries.push([key, obj[key]]);
  57.             }
  58.         }
  59.     }
  60.    
  61.     print.log("  - ½á¹û: " + safeStringify(entries));
  62.     return entries;
  63. }

  64. // »ñÈ¡¶ÔÏó¼üÊý×é
  65. function getObjectKeys(obj) {
  66.     print.log("Ö´ÐÐgetObjectKeysº¯Êý - »ñÈ¡¶ÔÏó¼üÊý×é");
  67.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  68.     var keys = [];
  69.     var key;
  70.    
  71.     if (obj != null && typeof obj === 'object') {
  72.         for (key in obj) {
  73.             if (obj.hasOwnProperty(key)) {
  74.                 keys.push(key);
  75.             }
  76.         }
  77.     }
  78.    
  79.     print.log("  - ½á¹û: " + safeStringify(keys));
  80.     return keys;
  81. }

  82. // »ñÈ¡¶ÔÏóÖµÊý×é
  83. function getObjectValues(obj) {
  84.     print.log("Ö´ÐÐgetObjectValuesº¯Êý - »ñÈ¡¶ÔÏóÖµÊý×é");
  85.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  86.     var values = [];
  87.     var key;
  88.    
  89.     if (obj != null && typeof obj === 'object') {
  90.         for (key in obj) {
  91.             if (obj.hasOwnProperty(key)) {
  92.                 values.push(obj[key]);
  93.             }
  94.         }
  95.     }
  96.    
  97.     print.log("  - ½á¹û: " + safeStringify(values));
  98.     return values;
  99. }

  100. // ¶³½á¶ÔÏó - ·ÀÖ¹¶ÔÏó±»ÐÞ¸Ä
  101. function freezeObject(obj) {
  102.     print.log("Ö´ÐÐfreezeObjectº¯Êý - ¶³½á¶ÔÏó");
  103.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  104.     if (obj != null && typeof obj === 'object') {
  105.         var frozen = Object.freeze(obj);
  106.         print.log("  - ½á¹û: ¶ÔÏóÒѶ³½á");
  107.         return frozen;
  108.     }
  109.     print.log("  - ½á¹û: ¶ÔÏóΪnull»ò·Ç¶ÔÏóÀàÐÍ£¬Ö±½Ó·µ»Ø");
  110.     print.log("  - ½á¹û: " + safeStringify(obj));
  111.     return obj;
  112. }

  113. // ¼ì²é¶ÔÏóÊÇ·ñ±»¶³½á
  114. function isObjectFrozen(obj) {
  115.     print.log("Ö´ÐÐisObjectFrozenº¯Êý - ¼ì²é¶ÔÏóÊÇ·ñ±»¶³½á");
  116.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  117.     var result;
  118.     if (obj != null && typeof obj === 'object') {
  119.         result = Object.isFrozen(obj);
  120.     } else {
  121.         result = false;
  122.     }
  123.     print.log("  - ½á¹û: " + (result ? "¶ÔÏóÒѱ»¶³½á" : "¶ÔÏóδ±»¶³½á"));
  124.     print.log("  - ½á¹û: " + safeStringify(result));
  125.     print.log("  - ½á¹û: " + safeStringify(result));
  126.     print.log("  - ½á¹û: ת»»³É¹¦");
  127.     print.log("  - ½á¹û: ±âƽ»¯³É¹¦£¬±âƽ¶ÔÏó: " + safeStringify(result));
  128.     return result;
  129. }

  130. // Éî¶È¿Ë¡¶ÔÏó - Ö§³ÖǶÌ×¶ÔÏóºÍÊý×é
  131. function deepCloneObject(obj) {
  132.     print.log("Ö´ÐÐdeepCloneObjectº¯Êý - Éî¶È¿Ë¡¶ÔÏó");
  133.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  134.     var clone;
  135.     var i, key;
  136.    
  137.     if (obj == null || typeof obj !== 'object') {
  138.         print.log("  - ½á¹û: ¶ÔÏóΪnull»ò·Ç¶ÔÏóÀàÐÍ£¬Ö±½Ó·µ»Ø");
  139.         return obj;
  140.     }
  141.    
  142.     // ´¦ÀíÊý×é
  143.     if (obj instanceof Array) {
  144.         clone = [];
  145.         for (i = 0; i < obj.length; i++) {
  146.             clone[i] = deepCloneObject(obj[i]);
  147.         }
  148.     }
  149.     // ´¦Àí¶ÔÏó
  150.     else {
  151.         clone = {};
  152.         for (key in obj) {
  153.             if (obj.hasOwnProperty(key)) {
  154.                 clone[key] = deepCloneObject(obj[key]);
  155.             }
  156.         }
  157.     }
  158.    
  159.     print.log("  - ½á¹û: ¿Ë¡³É¹¦");
  160.     return clone;
  161. }

  162. // 1. ¶ÔÏóÊôÐÔ°²È«»ñÈ¡ - ±ÜÃâundefined´íÎó
  163. function getSafe(obj, path, defaultValue) {
  164.     print.log("Ö´ÐÐgetSafeº¯Êý - °²È«»ñÈ¡¶ÔÏóÊôÐÔ");
  165.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  166.     print.log("  - ·¾¶: " + path);
  167.    
  168.     if (obj == null) {
  169.         print.log("  - ½á¹û: ¶ÔÏóΪnull£¬·µ»ØÄ¬ÈÏÖµ: " + defaultValue);
  170.         return defaultValue;
  171.     }
  172.    
  173.     var keys = path.split('.');
  174.     var current = obj;
  175.    
  176.     for (var i = 0; i < keys.length; i++) {
  177.         if (current == null || !current.hasOwnProperty(keys[i])) {
  178.             print.log("  - ½á¹û: ·¾¶²»´æÔÚ£¬·µ»ØÄ¬ÈÏÖµ: " + defaultValue);
  179.             return defaultValue;
  180.         }
  181.         current = current[keys[i]];
  182.     }
  183.    
  184.     print.log("  - ½á¹û: »ñÈ¡³É¹¦£¬ÖµÎª: " + safeStringify(current));
  185.     return current;
  186. }

  187. // 2. ¶ÔÏó±È½Ï - Éî¶È±È½ÏÁ½¸ö¶ÔÏóÊÇ·ñÏàµÈ
  188. function isEqual(obj1, obj2) {
  189.     print.log("Ö´ÐÐisEqualº¯Êý - Éî¶È±È½ÏÁ½¸ö¶ÔÏóÊÇ·ñÏàµÈ");
  190.     print.log("  - ¶ÔÏó1: " + safeStringify(obj1));
  191.     print.log("  - ¶ÔÏó2: " + safeStringify(obj2));
  192.     if (obj1 === obj2) {
  193.         print.log("  - ½á¹û: ¶ÔÏóÒýÓÃÏàͬ£¬Ö±½Ó·µ»Øtrue");
  194.         print.log("  - ½á¹û: ¶ÔÏóÉî¶È±È½Ï£¬ÏàµÈ");
  195.     return true;
  196.     }
  197.    
  198.     if (obj1 == null || obj2 == null) {
  199.         print.log("  - ½á¹û: ÆäÖÐÒ»¸ö¶ÔÏóΪnull£¬·µ»Øfalse");
  200.         return false;
  201.     }
  202.    
  203.     if (typeof obj1 !== typeof obj2) {
  204.         print.log("  - ½á¹û: ¶ÔÏóÀàÐͲ»Í¬£¬·µ»Øfalse");
  205.         return false;
  206.     }
  207.    
  208.     if (typeof obj1 !== 'object') {
  209.         var result = obj1 === obj2;
  210.         print.log("  - ½á¹û: »ù´¡ÀàÐͱȽϣ¬" + (result ? "ÏàµÈ" : "²»ÏàµÈ"));
  211.         return result;
  212.     }
  213.    
  214.     if (obj1 instanceof Array && obj2 instanceof Array) {
  215.         if (obj1.length !== obj2.length) return false;
  216.         for (var i = 0; i < obj1.length; i++) {
  217.             if (!isEqual(obj1[i], obj2[i])) return false;
  218.         }
  219.         return true;
  220.     }
  221.    
  222.     if (obj1 instanceof Array || obj2 instanceof Array) return false;
  223.    
  224.     var keys1 = getObjectKeys(obj1);
  225.     var keys2 = getObjectKeys(obj2);
  226.    
  227.     if (keys1.length !== keys2.length) return false;
  228.    
  229.     for (var j = 0; j < keys1.length; j++) {
  230.         var key = keys1[j];
  231.         if (!obj2.hasOwnProperty(key) || !isEqual(obj1[key], obj2[key])) {
  232.             return false;
  233.         }
  234.     }
  235.    
  236.     return true;
  237. }

  238. // 3. ¶ÔÏó¹ýÂË - ±£Áô·ûºÏÌõ¼þµÄÊôÐÔ
  239. function filterObject(obj, predicate) {
  240.     print.log("Ö´ÐÐfilterObjectº¯Êý - ¹ýÂ˶ÔÏóÊôÐÔ");
  241.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  242.     print.log("  - ¹ýÂËÌõ¼þ: " + predicate.toString());
  243.     if (obj == null || typeof obj !== 'object' || typeof predicate !== 'function') {
  244.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬·µ»Ø¿Õ¶ÔÏó");
  245.         return {};
  246.     }
  247.    
  248.     var result = {};
  249.     for (var key in obj) {
  250.         if (obj.hasOwnProperty(key) && predicate(obj[key], key, obj)) {
  251.             result[key] = obj[key];
  252.         }
  253.     }
  254.     return result;
  255. }

  256. // 4. ¶ÔÏóת»»ÎªMap - ÊʺÏÐèÒª¼üÖµ¶Ô²Ù×÷µÄ³¡¾°
  257. function objectToMap(obj) {
  258.     print.log("Ö´ÐÐobjectToMapº¯Êý - ¶ÔÏóת»»ÎªMap");
  259.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  260.     if (obj == null || typeof obj !== 'object') {
  261.         print.log("  - ½á¹û: ¶ÔÏóΪnull»ò·Ç¶ÔÏóÀàÐÍ£¬·µ»Ø¿ÕMap");
  262.         return new HashMap();
  263.     }
  264.    
  265.     var map = new HashMap();
  266.     for (var key in obj) {
  267.         if (obj.hasOwnProperty(key)) {
  268.             map.put(key, obj[key]);
  269.         }
  270.     }
  271.     print.log("  - ½á¹û: ת»»³É¹¦£¬Map´óС: " + map.size());
  272.     return map;
  273. }

  274. // 5. Mapת»»Îª¶ÔÏó
  275. function mapToObject(map) {
  276.     print.log("Ö´ÐÐmapToObjectº¯Êý - Mapת»»Îª¶ÔÏó");
  277.     print.log("  - Map: " + map.toString());
  278.     if (map == null || typeof map !== 'object' || typeof map.entrySet !== 'function') {
  279.         print.log("  - ½á¹û: MapÎÞЧ£¬·µ»Ø¿Õ¶ÔÏó");
  280.         return {};
  281.     }
  282.    
  283.     var obj = {};
  284.     var entries = map.entrySet().toArray();
  285.     for (var i = 0; i < entries.length; i++) {
  286.         var entry = entries[i];
  287.         obj[entry.getKey()] = entry.getValue();
  288.     }
  289.     return obj;
  290. }

  291. // 6. ¶ÔÏóÊôÐÔ±éÀú - ¶Ôÿ¸öÊôÐÔÖ´Ðлص÷º¯Êý
  292. function forEachObject(obj, callback) {
  293.     print.log("Ö´ÐÐforEachObjectº¯Êý - ±éÀú¶ÔÏóÊôÐÔ");
  294.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  295.     print.log("  - »Øµ÷º¯Êý: " + callback.toString());
  296.     if (obj == null || typeof obj !== 'object' || typeof callback !== 'function') {
  297.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬Ö±½Ó·µ»Ø");
  298.         return;
  299.     }
  300.    
  301.     for (var key in obj) {
  302.         if (obj.hasOwnProperty(key)) {
  303.             print.log("  - ´¦ÀíÊôÐÔ: " + key + " = " + safeStringify(obj[key]));
  304.             callback(obj[key], key, obj);
  305.         }
  306.     }
  307.     print.log("  - ½á¹û: ±éÀúÍê³É");
  308. }

  309. // 7. ¶ÔÏóÊôÐÔת»» - ת»»¶ÔÏóµÄÊôÐÔÖµ
  310. function transformObject(obj, transformer) {
  311.     print.log("Ö´ÐÐtransformObjectº¯Êý - ת»»¶ÔÏóÊôÐÔÖµ");
  312.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  313.     print.log("  - ת»»º¯Êý: " + transformer.toString());
  314.     if (obj == null || typeof obj !== 'object' || typeof transformer !== 'function') {
  315.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬·µ»Ø¿Õ¶ÔÏó");
  316.         return {};
  317.     }
  318.    
  319.     var result = {};
  320.     for (var key in obj) {
  321.         if (obj.hasOwnProperty(key)) {
  322.             result[key] = transformer(obj[key], key, obj);
  323.         }
  324.     }
  325.     return result;
  326. }

  327. // 8. ¼ì²é¶ÔÏóÊÇ·ñ°üº¬Ö¸¶¨ÊôÐÔ
  328. function hasOwnProperty(obj, key) {
  329.     print.log("Ö´ÐÐhasOwnPropertyº¯Êý - ¼ì²é¶ÔÏóÊôÐÔÊÇ·ñ´æÔÚ");
  330.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  331.     print.log("  - ÊôÐÔ: " + key);
  332.     var result;
  333.     if (obj == null || typeof obj !== 'object') {
  334.         result = false;
  335.     } else {
  336.         result = obj.hasOwnProperty(key);
  337.     }
  338.     print.log("  - ½á¹û: " + (result ? "´æÔÚ" : "²»´æÔÚ"));
  339.     return result;
  340. }

  341. // 9. »ñÈ¡¶ÔÏó´óС£¨ÊôÐÔÊýÁ¿£©
  342. function getObjectSize(obj) {
  343.     print.log("Ö´ÐÐgetObjectSizeº¯Êý - »ñÈ¡¶ÔÏóÊôÐÔÊýÁ¿");
  344.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  345.     var count = 0;
  346.     if (obj == null || typeof obj !== 'object') {
  347.         count = 0;
  348.     } else {
  349.         for (var key in obj) {
  350.             if (obj.hasOwnProperty(key)) count++;
  351.         }
  352.     }
  353.     print.log("  - ½á¹û: ÊôÐÔÊýÁ¿Îª" + count);
  354.     return count;
  355. }

  356. // 10. ¶ÔÏóÐòÁл¯ÔöÇ¿ - ´¦ÀíÑ­»·ÒýÓúÍÌØÊâÀàÐÍ
  357. function safeStringify(obj, space) {
  358.     print.log("Ö´ÐÐsafeStringifyº¯Êý - ¶ÔÏóÐòÁл¯");
  359.     try {
  360.         var cache = [];
  361.         var result = JSON.stringify(obj, function(key, value) {
  362.             if (typeof value === 'object' && value !== null) {
  363.                 if (cache.indexOf(value) !== -1) {
  364.                     return '[Circular Reference]';
  365.                 }
  366.                 cache.push(value);
  367.             }
  368.             return value;
  369.         }, space);
  370.         cache = null; // ÊÍ·ÅÄÚ´æ
  371.         return result;
  372.     } catch (e) {
  373.         print.log("  - ½á¹û: ÐòÁл¯Ê§°Ü£¬·µ»Ø¿Õ¶ÔÏó×Ö·û´®");
  374.         return '{}';
  375.     }
  376. }

  377. // 11. ¶ÔÏóÊôÐÔ¸üР- °²È«¸üжÔÏóÊôÐÔ£¬Ö§³ÖǶÌ×·¾¶
  378. function updateObject(obj, path, value) {
  379.     print.log("Ö´ÐÐupdateObjectº¯Êý - ¸üжÔÏóÊôÐÔ");
  380.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  381.     print.log("  - ·¾¶: " + path);
  382.     print.log("  - ÐÂÖµ: " + safeStringify(value));
  383.     if (obj == null || typeof obj !== 'object') {
  384.         print.log("  - ½á¹û: ¶ÔÏóΪnull»ò·Ç¶ÔÏóÀàÐÍ£¬Ö±½Ó·µ»Ø");
  385.         return obj;
  386.     }
  387.    
  388.     var keys = path.split('.');
  389.     var current = obj;
  390.    
  391.     for (var i = 0; i < keys.length - 1; i++) {
  392.         var key = keys[i];
  393.         if (!current[key] || typeof current[key] !== 'object') {
  394.             current[key] = {};
  395.         }
  396.         current = current[key];
  397.     }
  398.    
  399.     current[keys[keys.length - 1]] = value;
  400.     print.log("  - ½á¹û: ¸üгɹ¦£¬¶ÔÏó±äΪ: " + safeStringify(obj));
  401.     return obj;
  402. }

  403. // 12. ¶ÔÏóÊôÐÔɾ³ý - °²È«É¾³ý¶ÔÏóÊôÐÔ£¬Ö§³ÖǶÌ×·¾¶
  404. function deleteProperty(obj, path) {
  405.     print.log("Ö´ÐÐdeletePropertyº¯Êý - ɾ³ý¶ÔÏóÊôÐÔ");
  406.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  407.     print.log("  - ·¾¶: " + path);
  408.     if (obj == null || typeof obj !== 'object') {
  409.         print.log("  - ½á¹û: ¶ÔÏóΪnull»ò·Ç¶ÔÏóÀàÐÍ£¬Ö±½Ó·µ»Ø");
  410.         return obj;
  411.     }
  412.    
  413.     var keys = path.split('.');
  414.     var current = obj;
  415.    
  416.     for (var i = 0; i < keys.length - 1; i++) {
  417.         var key = keys[i];
  418.         if (!current[key] || typeof current[key] !== 'object') {
  419.             print.log("  - ½á¹û: ·¾¶²»´æÔÚ£¬Ö±½Ó·µ»ØÔ­¶ÔÏó");
  420.             return obj;
  421.         }
  422.         current = current[key];
  423.     }
  424.    
  425.     delete current[keys[keys.length - 1]];
  426.     print.log("  - ½á¹û: ɾ³ý³É¹¦£¬¶ÔÏó±äΪ: " + safeStringify(obj));
  427.     return obj;
  428. }

  429. // 13. ¶ÔÏóÊôÐÔ±éÀú²¢×ª»» - Éî¶Èת»»¶ÔÏóµÄËùÓÐÊôÐÔ
  430. function deepTransform(obj, transformer) {
  431.     print.log("Ö´ÐÐdeepTransformº¯Êý - Éî¶Èת»»¶ÔÏóÊôÐÔ");
  432.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  433.     print.log("  - ת»»º¯Êý: " + transformer.toString());
  434.     if (obj == null || typeof obj !== 'object' || typeof transformer !== 'function') {
  435.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬Ö±½Ó·µ»Ø");
  436.         return obj;
  437.     }
  438.    
  439.     if (obj instanceof Array) {
  440.         return obj.map(function(item) {
  441.             return deepTransform(item, transformer);
  442.         });
  443.     }
  444.    
  445.     var result = {};
  446.     for (var key in obj) {
  447.         if (obj.hasOwnProperty(key)) {
  448.             var value = obj[key];
  449.             if (typeof value === 'object' && value !== null) {
  450.                 result[key] = deepTransform(value, transformer);
  451.             } else {
  452.                 result[key] = transformer(value, key, obj);
  453.             }
  454.         }
  455.     }
  456.     return result;
  457. }

  458. // 14. ¶ÔÏó±âƽ»¯ - ½«Ç¶Ì×¶ÔÏóת»»Îª±âƽ½á¹¹
  459. function flattenObject(obj, prefix) {
  460.     print.log("Ö´ÐÐflattenObjectº¯Êý - ±âƽ»¯Ç¶Ì×¶ÔÏó");
  461.     print.log("  - ǶÌ×¶ÔÏó: " + safeStringify(obj));
  462.     if (obj == null || typeof obj !== 'object') {
  463.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬Ö±½Ó·µ»Ø");
  464.         return obj;
  465.     }
  466.    
  467.     var result = {};
  468.     prefix = prefix || '';
  469.    
  470.     for (var key in obj) {
  471.         if (obj.hasOwnProperty(key)) {
  472.             var fullPath = prefix ? prefix + '.' + key : key;
  473.             var value = obj[key];
  474.             
  475.             if (typeof value === 'object' && value !== null && !(value instanceof Array)) {
  476.                 var flatChild = flattenObject(value, fullPath);
  477.                 for (var childKey in flatChild) {
  478.                     if (flatChild.hasOwnProperty(childKey)) {
  479.                         result[childKey] = flatChild[childKey];
  480.                     }
  481.                 }
  482.             } else {
  483.                 result[fullPath] = value;
  484.             }
  485.         }
  486.     }
  487.     return result;
  488. }

  489. // 15. ±âƽ¶ÔÏó»¹Ô­ - ½«±âƽ½á¹¹×ª»»ÎªÇ¶Ì×¶ÔÏó
  490. function unflattenObject(flatObj) {
  491.     print.log("Ö´ÐÐunflattenObjectº¯Êý - »¹Ô­±âƽ¶ÔÏó");
  492.     print.log("  - ±âƽ¶ÔÏó: " + safeStringify(flatObj));
  493.     if (flatObj == null || typeof flatObj !== 'object') {
  494.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬Ö±½Ó·µ»Ø");
  495.         return flatObj;
  496.     }
  497.    
  498.     var result = {};
  499.    
  500.     for (var key in flatObj) {
  501.         if (flatObj.hasOwnProperty(key)) {
  502.             print.log("  - »¹Ô­ÊôÐÔ: " + key + " = " + safeStringify(flatObj[key]));
  503.             updateObject(result, key, flatObj[key]);
  504.         }
  505.     }
  506.     print.log("  - ½á¹û: »¹Ô­³É¹¦£¬Ç¶Ì×¶ÔÏó: " + safeStringify(result));
  507.     return result;
  508. }

  509. // 16. ¶ÔÏóÊôÐÔ´æÔÚÐÔ¼ì²é - ¼ì²éǶÌ×ÊôÐÔÊÇ·ñ´æÔÚ
  510. function hasNestedProperty(obj, path) {
  511.     print.log("Ö´ÐÐhasNestedPropertyº¯Êý - ¼ì²éǶÌ×ÊôÐÔÊÇ·ñ´æÔÚ");
  512.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  513.     print.log("  - ·¾¶: " + path);
  514.     if (obj == null || typeof obj !== 'object') {
  515.         print.log("  - ½á¹û: ¶ÔÏóΪnull»ò·Ç¶ÔÏóÀàÐÍ£¬·µ»Øfalse");
  516.         return false;
  517.     }
  518.    
  519.     var keys = path.split('.');
  520.     var current = obj;
  521.    
  522.     for (var i = 0; i < keys.length; i++) {
  523.         var key = keys[i];
  524.         if (!current.hasOwnProperty(key)) {
  525.             print.log("  - ½á¹û: ·¾¶" + keys.slice(0, i + 1).join('.') + "²»´æÔÚ£¬·µ»Øfalse");
  526.             return false;
  527.         }
  528.         current = current[key];
  529.     }
  530.     print.log("  - ½á¹û: ·¾¶´æÔÚ");
  531.     return true;
  532. }

  533. // 17. ¶ÔÏóÊôÐÔ¿½±´ - ´ÓÒ»¸ö¶ÔÏó¿½±´ÊôÐÔµ½ÁíÒ»¸ö¶ÔÏó
  534. function copyProperties(source, target, properties) {
  535.     print.log("Ö´ÐÐcopyPropertiesº¯Êý - ¿½±´¶ÔÏóÊôÐÔ");
  536.     print.log("  - Ô´¶ÔÏó: " + safeStringify(source));
  537.     print.log("  - Ä¿±ê¶ÔÏó: " + safeStringify(target));
  538.     print.log("  - Ö¸¶¨ÊôÐÔ: " + safeStringify(properties));
  539.     if (source == null || typeof source !== 'object' || target == null || typeof target !== 'object') {
  540.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬·µ»ØÄ¿±ê¶ÔÏó");
  541.         return target;
  542.     }
  543.    
  544.     if (!properties || !(properties instanceof Array)) {
  545.         // ¿½±´ËùÓÐÊôÐÔ
  546.         for (var key in source) {
  547.             if (source.hasOwnProperty(key)) {
  548.                 target[key] = source[key];
  549.             }
  550.         }
  551.     } else {
  552.         // Ö»¿½±´Ö¸¶¨ÊôÐÔ
  553.         for (var i = 0; i < properties.length; i++) {
  554.             var key = properties[i];
  555.             if (source.hasOwnProperty(key)) {
  556.                 target[key] = source[key];
  557.             }
  558.         }
  559.     }
  560.     return target;
  561. }

  562. // 18. ¶ÔÏóÊôÐÔÖØÃüÃû - ÖØÃüÃû¶ÔÏóµÄÊôÐÔ
  563. function renameProperties(obj, mapping) {
  564.     print.log("Ö´ÐÐrenamePropertiesº¯Êý - ÖØÃüÃû¶ÔÏóÊôÐÔ");
  565.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  566.     print.log("  - Ó³Éä¹ØÏµ: " + safeStringify(mapping));
  567.     if (obj == null || typeof obj !== 'object' || mapping == null || typeof mapping !== 'object') {
  568.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬Ö±½Ó·µ»Ø");
  569.         return obj;
  570.     }
  571.    
  572.     var result = {};
  573.     for (var key in obj) {
  574.         if (obj.hasOwnProperty(key)) {
  575.             var newKey = mapping[key] || key;
  576.             print.log("  - ÖØÃüÃû: " + key + " -> " + newKey + " = " + safeStringify(obj[key]));
  577.             result[newKey] = obj[key];
  578.         }
  579.     }
  580.     print.log("  - ½á¹û: ÖØÃüÃû³É¹¦£¬¶ÔÏó±äΪ: " + safeStringify(result));
  581.     return result;
  582. }

  583. // 19. ¶ÔÏóÀàÐÍת»» - ½«¶ÔÏóÊôÐÔת»»ÎªÖ¸¶¨ÀàÐÍ
  584. function convertPropertyTypes(obj, typeMap) {
  585.     print.log("Ö´ÐÐconvertPropertyTypesº¯Êý - ת»»¶ÔÏóÊôÐÔÀàÐÍ");
  586.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  587.     print.log("  - ÀàÐÍÓ³Éä: " + safeStringify(typeMap));
  588.     if (obj == null || typeof obj !== 'object' || typeMap == null || typeof typeMap !== 'object') {
  589.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬Ö±½Ó·µ»Ø");
  590.         return obj;
  591.     }
  592.    
  593.     var result = {};
  594.     for (var key in obj) {
  595.         if (obj.hasOwnProperty(key)) {
  596.             var value = obj[key];
  597.             var type = typeMap[key];
  598.             
  599.             if (type && typeof type === 'function') {
  600.                 print.log("  - ת»»ÀàÐÍ: " + key + " = " + safeStringify(value) + " -> " + safeStringify(type(value)));
  601.                 result[key] = type(value);
  602.             } else {
  603.                 result[key] = value;
  604.             }
  605.         }
  606.     }
  607.     print.log("  - ½á¹û: ÀàÐÍת»»³É¹¦£¬¶ÔÏó±äΪ: " + safeStringify(result));
  608.     return result;
  609. }

  610. // 20. ¶ÔÏóÊôÐÔÑéÖ¤ - ÑéÖ¤¶ÔÏóÊôÐÔÊÇ·ñ·ûºÏÌõ¼þ
  611. function validateObject(obj, validations) {
  612.     print.log("Ö´ÐÐvalidateObjectº¯Êý - ÑéÖ¤¶ÔÏóÊôÐÔ");
  613.     print.log("  - ¶ÔÏó: " + safeStringify(obj));
  614.     print.log("  - ÑéÖ¤¹æÔò: " + safeStringify(validations));
  615.     if (obj == null || typeof obj !== 'object' || validations == null || typeof validations !== 'object') {
  616.         print.log("  - ½á¹û: ²ÎÊýÎÞЧ£¬·µ»ØÑé֤ʧ°Ü");
  617.         return {isValid: false, errors: []};
  618.     }
  619.    
  620.     var errors = [];
  621.    
  622.     for (var key in validations) {
  623.         if (validations.hasOwnProperty(key)) {
  624.             var validator = validations[key];
  625.             var value = obj[key];
  626.             
  627.             if (typeof validator === 'function') {
  628.                 if (!validator(value, key, obj)) {
  629.                     errors.push({key: key, message: 'ÊôÐÔÑé֤ʧ°Ü', value: value});
  630.                 }
  631.             } else if (validator.required && !obj.hasOwnProperty(key)) {
  632.                 errors.push({key: key, message: 'ÊôÐÔ±ØÌî', value: value});
  633.             } else if (validator.type && typeof value !== validator.type) {
  634.                 errors.push({key: key, message: 'ÊôÐÔÀàÐÍ´íÎó', value: value});
  635.             }
  636.         }
  637.     }
  638.    
  639.     print.log("  - ½á¹û: ÑéÖ¤" + (errors.length === 0 ? "ͨ¹ý" : "ʧ°Ü"));
  640.     if (errors.length > 0) {
  641.         print.log("  - ´íÎóÐÅÏ¢: " + safeStringify(errors));
  642.     }
  643.     return {isValid: errors.length === 0, errors: errors};
  644. }

  645. // ʹÓÃʾÀý - չʾʵ¼ÊÏîÄ¿ÖеÄÓ¦Óó¡¾°
  646. function objectUtilsExample() {
  647.     print.log("Ö´ÐÐobjectUtilsExampleº¯Êý - ¶ÔÏ󹤾ߺ¯ÊýʾÀý");
  648.     printl("=== ¶ÔÏ󹤾ߺ¯ÊýʹÓÃʾÀý ===");
  649.    
  650.     // ʾÀý1: °²È«»ñȡǶÌ×ÊôÐÔ - ±ÜÃâundefined´íÎó
  651.     printl("\n1. °²È«»ñȡǶÌ×ÊôÐÔ:");
  652.     var user = {
  653.         name: "ÕÅÈý",
  654.         contact: {
  655.             email: "zhangsan@example.com"
  656.         }
  657.     };
  658.     var phone = getSafe(user, "contact.phone", "δÉèÖÃ");
  659.     var email = getSafe(user, "contact.email", "δÉèÖÃ");
  660.     printl("   Óû§µç»°: " + phone);
  661.     printl("   Óû§ÓÊÏä: " + email);
  662.    
  663.     // ʾÀý2: ¶ÔÏóÉî¶È±È½Ï - ÑéÖ¤Êý¾ÝÒ»ÖÂÐÔ
  664.     printl("\n2. ¶ÔÏóÉî¶È±È½Ï:");
  665.     var serverData = {id: 1, name: "²úÆ·A", price: 100};
  666.     var localData = {id: 1, name: "²úÆ·A", price: 100};
  667.     var isSame = isEqual(serverData, localData);
  668.     printl("   ·þÎñÆ÷Êý¾Ý: " + safeStringify(serverData));
  669.     printl("   ±¾µØÊý¾Ý: " + safeStringify(localData));
  670.     printl("   Êý¾ÝÊÇ·ñÒ»ÖÂ: " + (isSame ? "ÊÇ" : "·ñ"));
  671.    
  672.     // ʾÀý3: ¶ÔÏó¹ýÂË - »ñÈ¡ÓÐЧÊý¾Ý
  673.     printl("\n3. ¶ÔÏó¹ýÂË:");
  674.     var products = {
  675.         "product1": {name: "ÊÖ»ú", price: 2000, inStock: true},
  676.         "product2": {name: "µçÄÔ", price: 5000, inStock: false},
  677.         "product3": {name: "ƽ°å", price: 3000, inStock: true}
  678.     };
  679.     var availableProducts = filterObject(products, function(product) {
  680.         return product.inStock && product.price < 4000;
  681.     });
  682.     printl("   ¿â´æ³ä×ãÇÒ¼Û¸ñµÍÓÚ4000µÄ²úÆ·: " + safeStringify(availableProducts));
  683.    
  684.     // ʾÀý4: ¶ÔÏóÊôÐÔ¸üР- ¶¯Ì¬¸üÐÂÅäÖÃ
  685.     printl("\n4. ¶ÔÏóÊôÐÔ¸üÐÂ:");
  686.     var config = {
  687.         server: {
  688.             host: "localhost",
  689.             port: 8080
  690.         },
  691.         timeout: 3000
  692.     };
  693.     updateObject(config, "server.port", 9090);
  694.     updateObject(config, "server.ssl", true);
  695.     printl("   ¸üкóµÄÅäÖÃ: " + safeStringify(config));
  696.    
  697.     // ʾÀý5: ¶ÔÏó±âƽ»¯ - ±ãÓÚ´æ´¢ºÍ´«Êä
  698.     printl("\n5. ¶ÔÏó±âƽ»¯:");
  699.     var nestedData = {
  700.         user: {
  701.             info: {
  702.                 name: "ÀîËÄ",
  703.                 age: 25
  704.             },
  705.             contact: {
  706.                 email: "lisi@example.com",
  707.                 phone: "13800138000"
  708.             }
  709.         }
  710.     };
  711.     var flatData = flattenObject(nestedData);
  712.     printl("   ±âƽ»¯Êý¾Ý: " + safeStringify(flatData));
  713.    
  714.     // ʾÀý6: ¶ÔÏóÑéÖ¤ - È·±£Êý¾ÝÍêÕûÐÔ
  715.     printl("\n6. ¶ÔÏóÑéÖ¤:");
  716.     var formData = {
  717.         username: "testuser",
  718.         password: "123",
  719.         email: "invalid-email"
  720.     };
  721.     var validationRules = {
  722.         username: {required: true, type: "string"},
  723.         password: function(value) {
  724.             return value.length >= 6;
  725.         },
  726.         email: function(value) {
  727.             return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
  728.         }
  729.     };
  730.     var validationResult = validateObject(formData, validationRules);
  731.     printl("   ÑéÖ¤½á¹û: " + (validationResult.isValid ? "ͨ¹ý" : "ʧ°Ü"));
  732.     if (!validationResult.isValid) {
  733.         printl("   ´íÎóÐÅÏ¢: " + safeStringify(validationResult.errors));
  734.     }
  735.    
  736.     // ʾÀý7: ¶ÔÏóÀàÐÍת»» - ͳһÊý¾Ý¸ñʽ
  737.     printl("\n7. ¶ÔÏóÀàÐÍת»»:");
  738.     var apiData = {
  739.         id: "123",
  740.         price: "99.99",
  741.         quantity: "10",
  742.         isActive: "true"
  743.     };
  744.     var typeConversions = {
  745.         id: parseInt,
  746.         price: parseFloat,
  747.         quantity: parseInt,
  748.         isActive: function(value) { return value === "true"; }
  749.     };
  750.     var convertedData = convertPropertyTypes(apiData, typeConversions);
  751.     printl("   ×ª»»Ç°: " + safeStringify(apiData));
  752.     printl("   ×ª»»ºó: " + safeStringify(convertedData));
  753.     printl("   ¼Û¸ñÀàÐÍ: " + (typeof convertedData.price));
  754.     printl("   ÊýÁ¿ÀàÐÍ: " + (typeof convertedData.quantity));
  755.     printl("   ÊÇ·ñ¼¤»î: " + convertedData.isActive);
  756. }

  757. // ¿ÉÒÔͨ¹ýµ÷ÓÃÕâ¸öº¯ÊýÀ´ÔËÐÐʾÀý
  758. print.log("×¼±¸Ö´ÐÐʾÀýº¯Êý");
  759. objectUtilsExample();
  760. print.log("ʾÀýº¯ÊýÖ´ÐÐÍê³É");

  761. // ʵ¼ÊÏîĿӦÓÃʾÀý - Ä£ÄâAIWROKÏîÄ¿ÖеÄÊý¾Ý´¦Àí³¡¾°
  762. function aiwrokProjectExample() {
  763.     print.log("Ö´ÐÐaiwrokProjectExampleº¯Êý - AIWROKÏîĿӦÓÃʾÀý");
  764.     printl("\n=== AIWROKÏîĿʵ¼ÊÓ¦ÓÃʾÀý ===");
  765.    
  766.     // Ä£Äâ´Ó·þÎñÆ÷»ñÈ¡µÄÊý¾Ý
  767.     var serverResponse = {
  768.         "code": 200,
  769.         "message": "success",
  770.         "data": {
  771.             "userInfo": {
  772.                 "userId": "user_123456",
  773.                 "userName": "AIWROKÓû§",
  774.                 "userType": "normal",
  775.                 "createTime": "2023-12-25T10:30:00Z",
  776.                 "preferences": {
  777.                     "theme": "dark",
  778.                     "language": "zh-CN",
  779.                     "notifications": true
  780.                 }
  781.             },
  782.             "deviceList": [
  783.                 {
  784.                     "deviceId": "device_789",
  785.                     "deviceName": "²âÊÔÉ豸",
  786.                     "status": "online",
  787.                     "battery": "85",
  788.                     "temperature": "25.5"
  789.                 }
  790.             ]
  791.         }
  792.     };
  793.    
  794.     // 1. °²È«»ñÈ¡Óû§ÐÅÏ¢
  795.     var userInfo = getSafe(serverResponse, "data.userInfo", {});
  796.     var userName = getSafe(userInfo, "userName", "δ֪Óû§");
  797.     var userTheme = getSafe(userInfo, "preferences.theme", "light");
  798.     printl("1. Óû§ÐÅÏ¢»ñÈ¡:");
  799.     printl("   Óû§Ãû: " + userName);
  800.     printl("   Ö÷ÌâÉèÖÃ: " + userTheme);
  801.    
  802.     // 2. ´¦ÀíÉ豸Êý¾Ý
  803.     var deviceList = getSafe(serverResponse, "data.deviceList", []);
  804.     if (deviceList.length > 0) {
  805.         var firstDevice = deviceList[0];
  806.         
  807.         // ת»»É豸ÊôÐÔÀàÐÍ
  808.         var deviceData = convertPropertyTypes(firstDevice, {
  809.             battery: parseInt,
  810.             temperature: parseFloat
  811.         });
  812.         
  813.         printl("\n2. É豸Êý¾Ý´¦Àí:");
  814.         printl("   É豸Ãû³Æ: " + deviceData.deviceName);
  815.         printl("   É豸״̬: " + deviceData.status);
  816.         printl("   µç³ØµçÁ¿: " + deviceData.battery + "%");
  817.         printl("   É豸ζÈ: " + deviceData.temperature + "¡ãC");
  818.         
  819.         // ¼ì²éÉ豸״̬
  820.         if (deviceData.battery < 20) {
  821.             printl("   ¾¯¸æ: µç³ØµçÁ¿µÍ£¬ÐèÒª³äµç£¡");
  822.         }
  823.         if (deviceData.temperature > 30) {
  824.             printl("   ¾¯¸æ: É豸ζȹý¸ß£¡");
  825.         }
  826.     }
  827.    
  828.     // 3. ×¼±¸·¢Ë͵½·þÎñÆ÷µÄÇëÇóÊý¾Ý
  829.     var requestData = {
  830.         userId: userInfo.userId,
  831.         action: "update_preferences",
  832.         timestamp: new Date().getTime(),
  833.         data: {
  834.             theme: "light",
  835.             notifications: false
  836.         }
  837.     };
  838.    
  839.     // ÑéÖ¤ÇëÇóÊý¾Ý
  840.     var requestValidation = validateObject(requestData, {
  841.         userId: {required: true, type: "string"},
  842.         action: {required: true, type: "string"},
  843.         timestamp: function(value) {
  844.             return typeof value === "number" && value > 0;
  845.         }
  846.     });
  847.    
  848.     printl("\n3. ÇëÇóÊý¾ÝÑéÖ¤:");
  849.     printl("   ÑéÖ¤½á¹û: " + (requestValidation.isValid ? "ͨ¹ý" : "ʧ°Ü"));
  850.     if (requestValidation.isValid) {
  851.         printl("   ÇëÇóÊý¾Ý: " + safeStringify(requestData));
  852.         // ÔÚʵ¼ÊÏîÄ¿ÖУ¬ÕâÀï»áµ÷ÓÃokHttpµÈÍøÂç¿â·¢ËÍÇëÇó
  853.         // printl("   ÕýÔÚ·¢ËÍÇëÇó...");
  854.     }
  855. }

  856. // ÔËÐÐAIWROKÏîĿӦÓÃʾÀý
  857. aiwrokProjectExample();




¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

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

¹Ø±Õ

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

map2

GMT+8, 2025-12-26 00:36 , Processed in 0.342159 second(s), 36 queries .

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