Top
Fork me on Gitee My Github

数组按照个数整合成二维数组

<!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>
posted @ 2019-10-29 09:48  lisashare  阅读(294)  评论(0编辑  收藏  举报