JS使用循环按指定倍数分割数组组成新的数组的方法

 今天一个新人同事问了我一个问题,就是有一个像下边这种不知道具体长度的数组,想以每4个为一组,重新组合为一个二维数组,很简单的需求只需要用到一个循环再去取余数就可以了,写了一个小demo在这里把代码包括注释贴出来供新人参考,代码如下:

        var chartArr = [
        {value:1,name:'哈哈'},
        {value:2,name:'哈哈'},
        {value:3,name:'哈哈'},
        {value:4,name:'哈哈'},
        {value:5,name:'哈哈'},
        {value:6,name:'哈哈'},
        {value:7,name:'哈哈'},
        {value:8,name:'哈哈'},
        {value:9,name:'哈哈'},
        {value:10,name:'哈哈'},
        {value:11,name:'哈哈'},
        {value:12,name:'哈哈'},
        {value:13,name:'哈哈'}
        ];
        var allData = []; //用来装处理完的数组
        var currData = []; //子数组用来存分割完的数据
        //循环需要处理的数组
        for(var i = 0; i < chartArr.length; i++) {
            //将chartArr[i]添加到子数组
            currData.push(chartArr[i]);
            console.log(i)
            //在这里求4的余数,如果i不等于0,且可以整除 或者考虑到不满4个或等于4个的情况就要加上  i等于当前数组长度-1的时候
            if((i != 0 && (i + 1) % 4 == 0) || i == chartArr.length - 1) {
                //把currData加到allData里
                allData.push(currData);
                //在这里清空currData
                currData = [];
            }
        };

下图是处理完的二维数组

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小詹同学

Leetcode打卡 | No.22 括号生成

欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

29410
来自专栏数据结构与算法

1807. [NOIP2014]寻找道路P2296 寻找道路

题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点...

31560
来自专栏kalifaの日々

C++构造无向图&求最短路径源码

用vector<edge> es[MAX]表示点,每个点队列里放着点的相邻边和到边的距离。 以下源码经过测试可运行 #include <iostream> #i...

33150
来自专栏Java Web

最大子段和问题

问题描述: 给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大,或者求出最大的这个和。如果该序列的...

43750
来自专栏kalifaの日々

POJ2431-最优队列(最小堆)解法

这道题有一个坑,就是给出的加油站到终点的距离不一定是降序排列好了的。 所以得到input之后要先对数据进行排序。我直接用了#include<algorithm>...

36370
来自专栏听雨堂

深入理解字符串和字节数组转换

      前文中,论及字符串和字节数组的转换,虽然能够找到某个代码页,保证转换的可逆,但是在实际处理中,仍然还有一些细节问题需要注意.       最重要的...

20380
来自专栏计算机视觉与深度学习基础

Codeforces 468B

很好的一道集合关系的题目,我比赛时用的是dfs,后来看到有人用并查集。 两种方法本质是一样的,但后者实现起来更方便,代码更简练。 /**************...

236100
来自专栏TungHsu

这或许是对小白最友好的python入门了吧——16,输入文本

大部分时候我们需要的数值元素等都不是给定的,而是需要用户输入的,我们应该怎么做呢? 这个是时候我们就要用input这个函数: score = input("输入...

28060
来自专栏云霄雨霁

排序----选择排序

17000
来自专栏ACM算法日常

leetcode题解 | 78. 子集

这个题目很容易想到使用DFS的方式来解决,因为组合的题容易产生转移方程,这样也是没有什么问题的。

17430

扫码关注云+社区

领取腾讯云代金券