• 323 数组拆分


    问题:有一个数组 arr = [a1, a2, a3, b1, b2, b3, c1, c2, c3...], 通过算法将数组进行拆分, 转化为如下格式的数组 [a1, b1,c1], [a2, b2, c2], [a3, b3, c3]并实现通用公式.

    总体思路:将数组的 n-1 下标下的内容,挑选出来

    思考有什么 问题 why?

    1. 原始的数组 [0,1,2,3,4,5,6,7,8] 的规律
    2. 需要拿到遍历的次数?
    3. 怎么挑出我需要的数字?
    // 0 1 2  3 4 5  6 7 8
    
    // 0 3 6
    // 1 4 7
    // 2 5 8
    

    打印 0 3 6, 1 4 7, 2 5 8

    for (let i = 0; i <= 8; i += 3) {
      console.log(i); // 0 3 6
    }
    
    for (let i = 1; i <= 8; i += 3) {
      console.log(i); // 1 4 7
    }
    
    for (let i = 2; i <= 8; i += 3) {
      console.log(i); // 2 5 8
    }
    

    分析得出,i 是 变化的部分


    得出:

    function slice(arr, sliceCount = 3) {
      const result = [];
      let minx = [];
      if (Array.isArray(arr)) {
        //   取得遍历的次数
        let count = Math.ceil((arr.length - 1) / sliceCount);
        for (let i = 0; i < count; i++) {
          for (let j = i; j <= arr.length - 1; j += sliceCount) {
            minx.push(arr[j]);
          }
          result.push(minx);
          minx = [];
        }
      } else {
        throw new TypeError("error");
      }
    
      return result;
    }
    
    console.log(slice([0, 1, 2, 3, 4, 5, 6, 7, 8])); // [ [ 0, 3, 6 ], [ 1, 4, 7 ], [ 2, 5, 8 ] ]
    
  • 相关阅读:
    pip3 install的时候报错timed out
    小程序经验
    require()  module.export    Object.keys()
    canvas
    弹框时出现灰色背景
    template模板的使用方法
    javascript中array常用属性方法
    封装数据请求
    wx 参数传值
    ELF文件格式分析
  • 原文地址:https://www.cnblogs.com/ifon/p/16043861.html
Copyright © 2020-2023  润新知