3a370cc13e5d26efd65ba0c9fe09e3b3c5c828ab.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. System.register(["cc"], function (_export, _context) {
  2. "use strict";
  3. var _cclegacy, ArrayUtil, _crd;
  4. _export("ArrayUtil", void 0);
  5. return {
  6. setters: [function (_cc) {
  7. _cclegacy = _cc.cclegacy;
  8. }],
  9. execute: function () {
  10. _crd = true;
  11. _cclegacy._RF.push({}, "4613b2zY/dMSaGPBGo6eti3", "ArrayUtil", undefined);
  12. /*
  13. * @Author: dgflash
  14. * @Date: 2021-08-11 16:41:12
  15. * @LastEditors: dgflash
  16. * @LastEditTime: 2022-09-02 14:50:57
  17. */
  18. /** 数组工具 */
  19. _export("ArrayUtil", ArrayUtil = class ArrayUtil {
  20. /**
  21. * 数组去重,并创建一个新数组返回
  22. * @param arr 源数组
  23. */
  24. static noRepeated(arr) {
  25. var res = [arr[0]];
  26. for (var i = 1; i < arr.length; i++) {
  27. var repeat = false;
  28. for (var j = 0; j < res.length; j++) {
  29. if (arr[i] == res[j]) {
  30. repeat = true;
  31. break;
  32. }
  33. }
  34. if (!repeat) {
  35. res.push(arr[i]);
  36. }
  37. }
  38. return res;
  39. }
  40. /**
  41. * 复制二维数组
  42. * @param array 目标数组
  43. */
  44. static copy2DArray(array) {
  45. var newArray = [];
  46. for (var i = 0; i < array.length; i++) {
  47. newArray.push(array[i].concat());
  48. }
  49. return newArray;
  50. }
  51. /**
  52. * Fisher-Yates Shuffle 随机置乱算法
  53. * @param array 目标数组
  54. */
  55. static fisherYatesShuffle(array) {
  56. var count = array.length;
  57. while (count) {
  58. var index = Math.floor(Math.random() * count--);
  59. var temp = array[count];
  60. array[count] = array[index];
  61. array[index] = temp;
  62. }
  63. return array;
  64. }
  65. /**
  66. * 混淆数组
  67. * @param array 目标数组
  68. */
  69. static confound(array) {
  70. return array.slice().sort(() => Math.random() - .5);
  71. }
  72. /**
  73. * 数组扁平化
  74. * @param array 目标数组
  75. */
  76. static flattening(array) {
  77. for (; array.some(v => Array.isArray(v));) {
  78. // 判断 array 中是否有数组
  79. array = [].concat.apply([], array); // 压扁数组
  80. }
  81. return array;
  82. }
  83. /** 删除数组中指定项 */
  84. static removeItem(array, item) {
  85. var temp = array.concat();
  86. for (var i = 0; i < temp.length; i++) {
  87. var value = temp[i];
  88. if (item == value) {
  89. array.splice(i, 1);
  90. break;
  91. }
  92. }
  93. }
  94. /**
  95. * 合并数组
  96. * @param array1 目标数组1
  97. * @param array2 目标数组2
  98. */
  99. static combineArrays(array1, array2) {
  100. return [...array1, ...array2];
  101. }
  102. /**
  103. * 获取随机数组成员
  104. * @param array 目标数组
  105. */
  106. static getRandomValueInArray(array) {
  107. return array[Math.floor(Math.random() * array.length)];
  108. }
  109. });
  110. _cclegacy._RF.pop();
  111. _crd = false;
  112. }
  113. };
  114. });
  115. //# sourceMappingURL=3a370cc13e5d26efd65ba0c9fe09e3b3c5c828ab.js.map