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 条评论
登录 后参与评论

相关文章

来自专栏听雨堂

使用正则表达式求完整路径中的文件名

      以前都是比较恶心的算法,找字符串中的最后一个"\",再求出末尾的文件名。现在好啦,用.net中的正则表达式,可以非常漂亮的完成。    usin...

2018
来自专栏瞎说开发那些事

RPA与Excel(DataTable)

方法: 直接调用invokeCode,入参为已定义好的DataTable,出参为去重后的DataTable,代码如下

752
来自专栏数据小魔方

半圆型动态仪表盘风格图表

今天跟大家分享一款半圆型动态仪表盘风格图表!真的可以动起来哦! ▼ 下午在浏览论坛的时候,刚好看到秋叶老师的一个图表教程,风格是半圆型饼图,用VBA控制。 ? ...

3296
来自专栏阿凯的Excel

小小查找键、大大大乐趣

你是不是在高速路口堵车的时候看到本文章呢? 不要问我在干嘛! 今天和大家愉快的分享的是查找键!! 神马?查找键还需要分享? 查找键其实分两类,一种是Ctr...

2044
来自专栏web前端教室

html5 - canvas 简介

什么是Canvas? 1、canvas 元素是html5的核心功能之一,使用 JavaScript 在网页上绘制图像。 2、画布是一个矩形区域,您可以控制其每...

1748
来自专栏我有一个梦想

Python 项目实践一(外星人入侵小游戏)第三篇

接着上节的继续学习, 一 重构:模块game_functions 在大型项目中,经常需要在添加新代码前重构既有代码。重构旨在简化既有代码的结构,使其更容易扩展。...

2169
来自专栏生信宝典

network3D: 交互式桑基图

桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、...

42913
来自专栏hrscy

iOS 9 Storyboard 教程(二下)

现在你会忽视Game行,仅仅让用户输入玩家的名字. 当用户点击Cancel按钮的时候,这个控制器将会关闭并且不管你输了什么数据都不会保存.这个部分用unwin...

841
来自专栏小樱的经验随笔

超级玛丽游戏

10:超级玛丽游戏 总时间限制:1000ms 内存限制:65536kB 描述 超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。 ...

3768
来自专栏MixLab科技+设计实验室

设计师编程指南之Sketch插件开发 9 之 Shape中的oval

往期文章索引: 1 / 入门基本概念、page的相关操作 2 / artboard 、NSFileManager 和 NSString 关于文件及文件夹的相关操...

2787

扫码关注云+社区