一、【通用方法】将一维数组转变为二维数组
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