帮忙写两个JSfor循环

发布于 2022-09-13 00:36:08 字数 305 浏览 16 评论 0

第一个比如数字是100
var a = 100;
有6个DIV
for (var i = 1; i <= a; i++) {
}
FOR 循环
第1个盒子是1,7
第2个盒子是2,8
第3个盒子是3,9
第4个盒子是4,10
第5个盒子是5,11
第6个盒子是6,12

第二个比如数字是101
var a = 101;
for (var i = 1; i <= a; i++) {
}
前20放第一个DIV
一共放进6个DIV

数值最大是1000,求高性能写法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

土豪 2022-09-20 00:36:08
var a=100;
var toDiv =(num,max)=>[...Array(num).keys()].map(i=>i+1).reduce((acc,cur,idx,arr)=>(( max>idx) ?acc.push([cur,arr[max+idx]]):(arr.length=max),acc),[]);
toDiv(a,6);

结果

0: (2) [1, 7]
1: (2) [2, 8]
2: (2) [3, 9]
3: (2) [4, 10]
4: (2) [5, 11]
5: (2) [6, 12]

第二个

var a=101;
var toDivOrder =(num,max)=>[...Array(num).keys()].map(i=>i+1).reduce((acc,cur,idx,arr)=>(( max>idx) ? acc.push(arr.slice(idx*20,idx*20+20)):(arr.length=max),acc),[]);
toDivOrder(a,6);

结果


(6) [Array(20), Array(20), Array(20), Array(20), Array(20), Array(1)]
0: (20) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
1: (20) [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40]
2: (20) [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60]
3: (20) [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80]
4: (20) [81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
5: [101]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文