js倒序生成如下数组(使用场景:日历等)
[ 49, 50, 51, 52, 53, 54, 55, 56,
41, 42, 43, 44, 45, 46, 47, 48,
33, 34, 35, 36, 37, 38, 39, 40,
25, 26, 27, 28, 29, 30, 31, 32,
17, 18, 19, 20, 21, 22, 23, 24,
9 , 10, 11, 12, 13, 14, 15, 16,
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]
两种不同的实现方式
从哪个数开始
代码如下
/**
* 倒序生成数组,默认从1开始
* @param {行数} row
* @param {列数} col
* @param {从哪个数开始} startNum
*/
function generateArr(row, col, startNum = 1) {
const length = row * col;
let arr = new Array(length)
for (let i = 0; i < length; i++) {
arr[i] = row * col - col + (i % col) - (Math.floor(i / col)) * col + startNum
}
console.log(arr)
return arr
}
// generateArr(1,1)
// generateArr(2, 3, 8)
// generateArr(2,2)
// generateArr(2,1)
// generateArr(7,8)
// generateArr(3,3)
// generateArr(4,6)
到哪个数结束
/**
* 倒序生成数组
* @param {行数} row
* @param {列数} col
* @param {到哪个数结束} keyamt
*/
function createPageArr(row, column, keyamt) {
let pageArr = []
for (let i = 0; i < row; i++) {
for (let j = 0; j < column; j++) {
pageArr.push(keyamt - i * column - (column - j) + 1)
}
}
console.log(pageArr)
return pageArr
}
// createPageArr(1, 1, 8)
// createPageArr(2, 3, 9)
网友评论