<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>将数组按照个数整合成二维数组</title>
</head>
<body>
<p>例子:一个数组,按照每个二维数组内的长度为4(将数组按照每4个,合成二维数组),应用:在swiper中,每个swiper-slide中含有4个item,进行轮播(这样的数组结构在vue中双层循环就可以实现)</p>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
function dimensionalConvert(objArray, n){
let len = objArray.length;
let lineNum = len % n === 0 ? len / n : Math.floor( (len / n) + 1 );
let res = [];
for (let i = 0; i < lineNum; i++) {
let temp = objArray.slice(i*n, i*n+n);
res.push(JSON.parse(JSON.stringify(temp)));
}
return res;
}
var objArray = [
{"id":1},
{"id":2},
{"id":3},
{"id":4},
{"id":5},
{"id":6},
{"id":7},
{"id":8},
{"id":9},
{"id":10},
{"id":11},
{"id":12},
{"id":13},
{"id":14},
{"id":15}
];
let n = 4; // 假设每行显示4个
// 执行
console.log(dimensionalConvert(objArray, n));
</script>
<p>
实现一个算法: 一个数据列表有m页,每页有a条,要删除n条记录,计算删除n条数据后要跳转的页码;
已知:当前页码:current_page,当前页数据数量:data_num;每页a条,删除n条记录;
期望结果:如:每页7条,共15条记录,删除第8条跳转到第2页,删除第15条跳转到第2页,删除第2条跳转到第1页;
注意,每次不只删除1条,如果15条记录删除8条要跳转到第1页;
答案:Math.ceil(((current_page-1)*a+data_num-n)/a),如果值=0,设置页面为1
</p>
</body>
</html>