【微信小程序】将一维数组转变为二维数组(通用方法)

一、【通用方法】将一维数组转变为二维数组


function create2DArray(arr) {

  arr.sort((a, b) => a - b);//数组升序排序

  const length = arr.length;//数组个数

  let rows = Math.ceil(Math.sqrt(length));//行
  let cols = Math.ceil(length / rows);//列

  while (rows * cols < length) {
    rows++;
  }

  // 创建二维数组
  let result = [];
  let index = 0;
  for (let i = 0; i < rows; i++) {
    result[i] = [];
    for (let j = 0; j < cols; j++) {
      result[i][j] = arr[index++];
    }
  }
  return result;
}

二、使用

 const arr = create2DArray(this.data.todayUseList)
 console.log(arr);

三、知识点

1.arr.sort((a, b) => a - b);

(1)升序排序

纯数字

let arr = [1, 10, 2, 12];
let ASCarr = arr.sort((a, b) => a - b) // 升序排列 [1,2,10,12]

字符串 + 数字

let arr = ['c', 'a', 'f', 'b', 1, 10, 2, 12];
let ASCarr = arr.sort((a, b) => {
        if (a > b) {
            return 1;
        } else if (a < b) {
            return -1;
        } else {
            return 0;
        }
    }) 
 
// ["a","b","c","f",1,2,10,12]

(2)降序排序

纯数字

let arr = [1, 10, 2, 12];
let DESarr = arr.sort((a, b) => b - a) // 降序排列 [12,10,2,1]

字符串+数字

let arr = ['c', 'a', 'f', 'b', 1, 10, 2, 12];
let DESarr = arr.sort((a, b) => {
    if (a > b) {
        return -1;
    } else if (a < b) {
        return 1;
    } else {
        return 0;
    }
})
 
// ["f","c","b","a",12,10,2,1]

2.Math.ceil() 取整
Math.ceil() 方法可对一个数进行上舍入,返回值大于或等于给定的参数。

double d = 100.675;
System.out.println(Math.ceil(d));

//101.0

3.Math.sqrt(x)

参数说明:
x – 必需,数字。如果 x 不是一个数字,返回 TypeError。如果数字小于 0,则返回ValueError

# 输出平方根
print (math.sqrt(9))
print (math.sqrt(25))
print (math.sqrt(16))
# 输出结果:
3.0
5.0
4.0
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值