1. let arr = [
    2. [1, 2, 3],
    3. [4, 4, 5],
    4. [6, 7, 8, [9, 10, [11, 12]]],
    5. ];
    6. // 1、ES6 flat处理
    7. arr = arr.flat(Infinity);
    8. // 2、通过toString()转化为字符串
    9. arr = arr.toString().split(',').map(item => parseFloat(item));
    10. // 3、循环验证是否为数组
    11. while (arr.some(item => Array.isArray(item))) {
    12. arr = [].concat(...arr);
    13. };
    1. function wrap () {
    2. let ret = [];
    3. return function flat(arr) {
    4. for (let item of arr) {
    5. if (item.constructor === Array) {
    6. ret.concat(flat(item));
    7. } else {
    8. ret.push(item);
    9. }
    10. }
    11. return ret;
    12. }
    13. }
    1. function wrap (arr) {
    2. let ret = [];
    3. ret = Array.from(new Set(arr.flat(Infinity)));
    4. return ret;
    5. }
    6. // 随机生成一个长度为 10 的整数类型的数组,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20],将其排列成一个新数组,要求新数组形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]]。
    7. function formArray(arr) {
    8. const sortedArr = Array.from(new Set(arr)).sort((a, b) => a - b);
    9. const map = new Map();
    10. debugger;
    11. sortedArr.forEach((v) => {
    12. const key = Math.floor(v / 10);
    13. const group = map.get(key) || [];
    14. group.push(v);
    15. map.set(key, group);
    16. });
    17. return [...map.values()];
    18. }
    19. // 旋转数组
    20. function rotate(arr, k) {
    21. const len = arr.length
    22. const step = k % len
    23. debugger
    24. return arr.slice(-step).concat(arr.slice(0, len - step))
    25. }
    26. // 移动0
    27. function zeroMove(array) {
    28. let len = array.length;
    29. let j = 0;
    30. debugger
    31. for(let i=0;i<len-j;i++){
    32. if(array[i]===0){
    33. array.push(0);
    34. array.splice(i,1);
    35. i --;
    36. j ++;
    37. }
    38. }
    39. return array;
    40. }
    41. function currying(fn, length) {
    42. length = length || fn.length;
    43. debugger;
    44. return function (...args) {
    45. return args.length >= length ?
    46. fn.apply(this, args) :
    47. currying(fn.bind(this, ...args), length - args.length)
    48. }
    49. }
    50. function fun(num) {
    51. let num1 = num / 10;
    52. let num2 = num % 10;
    53. debugger;
    54. if (num1 < 1) {
    55. return num;
    56. } else {
    57. num1 = Math.floor(num1);
    58. return `${num2}${fun(num1)}`;
    59. }
    60. }
    61. var a = fun(12345);
    62. console.log(a);
    63. console.log(typeof a);