chunk_towArray/index.js

import cavar_type from '../cavar_type'

/**
* 功能:普通数组拆分为二维数组 返回一个包围区块的新数组
* @param {array} arr - 目标数组
* @param {number} [arrNum] - default is 2,拆分成二维数组的每一个数组的成员个数
* @returns {array} - 返回处理后的二维数组
*/
// 6. 普通数组拆分为二维数组 返回一个包围区块的新数
//          1. arr[必传值] Array
//          2. arrNum number default is 2,拆分成二维数组的每一个数组的成员个数
function chunk_towArray(arr, arrNum = 1) {
    arr = remove_repetition(arr);
    const arr_task = cavar_type(arr);
    const arr_num_task = cavar_type(arrNum);
    let chunk_arr = [];
    let task_num = arr.length / arrNum;
    function execute_function(task) {
      // 创建数组对象
      for (let index = 0; index < task; index++) {
        chunk_arr[index] = [];
        for (
          let item_index = index * arrNum;
          item_index < arr.length;
          item_index++
        ) {
          if (chunk_arr[index].length < arrNum) {
            chunk_arr[index].push(arr[item_index]);
          }
        }
        // chunk_arr[index] = [...new Set(chunk_arr[index])]; // 每次去重
      }
    }
    if (arr_task === "array" && arr_num_task === "number") {
      if (Number.isInteger(task_num)) {
        execute_function(task_num);
      } else {
        let task = ("" + task_num).split(".");
        execute_function(+task[0] + 1);
      }
  
      return chunk_arr;
    } else {
      let type_num;
      if (arr_task !== "array" && arr_num_task !== "number") {
        type_num = "arguments";
      } else if (arr_task !== "array") {
        type_num = "first";
      } else {
        type_num = "second";
      }
      return console.error(
        new Error(
          "chunk: " +
            type_num +
            " parameter " +
            "is " +
            "other, " +
            "But To give you one empty Array Data" +
            " you is sb"
        )
      );
    }
  }
  export default chunk_towArray