精华内容
下载资源
问答
  • 一维数组转二维数组

    千次阅读 2018-08-15 16:17:12
    在项目上,会遇到将一个一维数组的数据,按板块的分布排版这一类的需求。这种需求的数据往往就是数组元素中含有相同字段,以这相同字段分类即可达到需求。 以以下数据为例: 将 let oldArr= [ { name: "...

    在项目上,会遇到将一个一维数组的数据,按板块的分布排版这一类的需求。这种需求的数据往往就是数组元素中含有相同字段,以这相同字段分类即可达到需求。

    以以下数据为例:

    let oldArr= [
      {
        name: "一级光圆钢",
        type: "热轧光圆钢筋(盘卷)",
        material: "HPB300",
        specification: "Φ8",
      },
      {
        name: "一级光圆钢",
        type: "热轧光圆钢筋(盘卷)",
        material: "HPB300",
        specification: "Φ10",
      },
      {
        name: "一级光圆钢",
        type: "热轧光圆钢筋(盘卷)",
        material: "HPB300",
        specification: "Φ12",
      },
      
      {
        name: "四级抗震螺纹钢",
        type: "热轧带肋钢筋",
        material: "HRB500E",
        specification: "Φ14-普尺",
      },
      {
        name: "四级抗震螺纹钢",
        type: "热轧带肋钢筋",
        material: "HRB500E",
        specification: "Φ16-L12M",
      },
      
      {
        name: "三级抗震螺纹钢",
        type: "热轧带肋钢筋",
        material: "HRB400E",
        specification: "Φ20-L12M",
      },
      {
        name: "三级抗震螺纹钢",
        type: "热轧带肋钢筋",
        material: "HRB400E",
        specification: "Φ20-L9M",
      },
      
      {
        name: "三级抗震螺纹钢",
        type: "热轧带肋钢筋(盘卷)",
        material: "HRB400E",
        specification: "Φ10",
      },
      {
        name: "三级抗震螺纹钢",
        type: "热轧带肋钢筋(盘卷)",
        material: "HRB400E",
        specification: "Φ12",
      },
    ];
    
    

    转换为

    let newArr= [
        [
          {
            name: "一级光圆钢",
            type: "热轧光圆钢筋(盘卷)",
            material: "HPB300",
            specification: "Φ8",
          },
          {
            name: "一级光圆钢",
            type: "热轧光圆钢筋(盘卷)",
            material: "HPB300",
            specification: "Φ10",
          },
          {
            name: "一级光圆钢",
            type: "热轧光圆钢筋(盘卷)",
            material: "HPB300",
            specification: "Φ12",
          },
        ],
    
        [
          {
            name: "四级抗震螺纹钢",
            type: "热轧带肋钢筋",
            material: "HRB500E",
            specification: "Φ14-普尺",
          },
          {
            name: "四级抗震螺纹钢",
            type: "热轧带肋钢筋",
            material: "HRB500E",
            specification: "Φ16-L12M",
          },
        ],
      
     
        [
          {
            name: "三级抗震螺纹钢",
            type: "热轧带肋钢筋",
            material: "HRB400E",
            specification: "Φ20-L12M",
          },
          {
            name: "三级抗震螺纹钢",
            type: "热轧带肋钢筋",
            material: "HRB400E",
            specification: "Φ20-L9M",
          },
        ],
    
        [
          {
            name: "三级抗震螺纹钢",
            type: "热轧带肋钢筋(盘卷)",
            material: "HRB400E",
            specification: "Φ10",
          },
          {
            name: "三级抗震螺纹钢",
            type: "热轧带肋钢筋(盘卷)",
            material: "HRB400E",
            specification: "Φ12",
          },
        ]
    ];

    即将一个一维数组转为二维数组

    不难发现,部分数组元素字段存在相同的值,我们以type来将这个数组变为二维数组

    /*本该这样写,但是会发现报错,type未找到。原因就是oldArr[i+1]已经超出了oldArr,所以会报错*/
    
    let newArr = [],tempArr = [];
    for(let i=0;i<oldArr.length;i++){
      if(oldArr[i].type === oldArr[i+1].type){
        tempArr.push(oldArr[i]);
      }else {
        tempArr.push(oldArr[i]);
        newArr.push(tempArr.slice(0));
        tempArr.length = 0;
      }
    }
    console.log(newArr)
    
    
    /*所以,我们可以将原来的数组长度+1,即oldArr.push({}),不用填任何数据,就增加一条空数据保证数组长度。接下来就可以这样写*/
    
    let newArr = [],tempArr = [];
    oldArr.push({});
    for(let i=0;i<oldArr.length-1;i++){
      if(oldArr[i].type === oldArr[i+1].type){
        tempArr.push(oldArr[i]);
      }else {
        tempArr.push(oldArr[i]);
        newArr.push(tempArr.slice(0));
        tempArr.length = 0;
      }
    }
    console.log(newArr)

    打印的结果就是newArr。

     

    那么,又怎么将这个二维数组变回原来数组的格式呢,很简单的

    let myArr = [];
    myArr = [].concat.apply([],newArr);
    console.log(myArr)

    打印结果就是原有数组oldArr的格式

    各位小伙伴去试试吧,亲测有效

    展开全文
  • 主要介绍了PHP实现一维数组转二维数组的方法,实例分析了php操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 一维数组转二维数组
  • C#一维数组转二维数组

    千次阅读 2017-07-28 11:04:23
    C#一维数组转二维数组

            public void chuliData(UInt16[] obj)
            {
    
                UInt16[,] dat = new UInt16[48, 56];
                for (int i = 0; i < 2688; i++)
                {
                    dat[i / 56, i % 56] = obj[i];
                }
    
         
    
            }

    以UInt16[] 为例,转换成二维数组,48行,56列

    此为一个方法,处理传来的UInt16[ ]。 

    展开全文
  • JavaScript一维数组转二维数组

    千次阅读 2018-12-26 10:02:50
    JavaScript一维数组转二维数组 当接收到一个数组时后端不一定会给你做太多处理,而我们需要的是一个多维的数组,这个时候,我们就需要将一维数组进行转换 第一种情况:数组里面是字符串的时候 let array = [1, 2, 3...

    JavaScript一维数组转二维数组

    当接收到一个数组时后端不一定会给你做太多处理,而我们需要的是一个多维的数组,这个时候,我们就需要将一维数组进行转换

    第一种情况:数组里面是字符串的时候

      let array = [1, 2, 3, 4, 5, 6, 7, 8];
      len len = array.length;
      let n = 4; //假设每行显示4个
      let lineNum = len % n === 0 ? len / n : Math.floor( (len / n) + 1 );
      let res = [];
      for (let i = 0; i < lineNum; i++) {
        // slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。
        let temp = array.slice(i*n, i*n+n);
        res.push(temp);
      }
      console.log(res);
    

    第二种情况:数组里面是对象的时候

    当数组元素为对象的时候,就不能使用slice方法进行截取了,因为slice属于浅拷贝,导致的问题就是你修改了新生成的数组对象值,会影响原始数组中对象的值。
    这里就介绍一种通过JSON.stringify和JSON.parse方法。

      let objArray = [{a: 1}, {b: 2}, {c: 3}, {d: 4}, {e: 5}, {f: 6}, {g: 7}];
      let len = objArray.length;
      let n = 4; //假设每行显示4个
      let lineNum = len % 4 === 0 ? len / 4 : Math.floor( (len / 4) + 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)));
      }
      console.log(res);
    
    

    文章转自左清吉的【js一维数组转二维数组】](https://blog.csdn.net/dengfangfang11/article/details/80433318)

    展开全文
  • Q1064245.zip https://ask.csdn.net/questions/1064245 c#winform如何实现一维数组转二维数组并保存在某处
  • js一维数组转二维数组

    万次阅读 多人点赞 2018-05-24 13:47:27
    使用场景举例:接口返回个数组对象,展示时每行固定显示n个,则可将返回的数组转二维数组[[...n], [...n]...]的形式循环展示。a.数组元素为基本类型: let baseArray = [1, 2, 3, 4, 5, 6, 7, 8]; len len = ...
    使用场景举例:接口返回一个数组对象,展示时每行固定显示n个,则可将返回的数组转成二维数组[[...n], [...n]...]的形式循环展示。

    a.数组元素为基本类型:

      let baseArray = [1, 2, 3, 4, 5, 6, 7, 8];
      len len = baseArray.length;
      let n = 4; //假设每行显示4个
      let lineNum = len % 4 === 0 ? len / 4 : Math.floor( (len / 4) + 1 );
      let res = [];
      for (let i = 0; i < lineNum; i++) {
        // slice() 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。
        let temp = baseArray.slice(i*n, i*n+n);
        res.push(temp);
      }
      console.log(res);

    结果:


    b.数组元素为对象
    当数组元素为对象的时候,就不能使用slice方法进行截取了,因为slice属于浅拷贝,导致的问题就是你修改了新生成的数组对象值,会影响原始数组中对象的值,就比如下。但很多时候我们并不想影响原来的值。

    现在来说说 数组的深拷贝和浅拷贝之我的理解 。简单的说深拷贝就是完全跟被拷贝对象脱离了关系,你修改新的对象内容,不会影响原来的对象,而且浅拷贝呢,貌似是生成了一份新的,但是实际和原来的还是同一个对象,只是变了个名字而已,所以你通过新名字来操作对象实际还是操作的原来的对象。嗯,有这样一个认识就可以了。
    深拷贝和浅拷贝主要是针对对象类型,基本类型并不涉及。具体的可以看看内存堆栈相关知识,也可以对深浅拷贝有更深的理解,这里就不赘述了。

    好了,回归正题,那就是如何深拷贝对象数组。 这里就介绍一种通过JSON.stringify和JSON.parse方法。
    所以举例的使用场景就可以改为如下:
      let objArray = [{a: 1}, {b: 2}, {c: 3}, {d: 4}, {e: 5}, {f: 6}, {g: 7}];
      let len = objArray.length;
      let n = 4; //假设每行显示4个
      let lineNum = len % 4 === 0 ? len / 4 : Math.floor( (len / 4) + 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)));
      }
      console.log(res);


    展开全文
  • 因项目需要,要把两个一维的数组一一对应地转化为二维的,之后,在对合成的二维数组进行...//合并一维数组二维数组 function array_hebing(arr1,arr2){ var result = new Array(); for(var i=0;i;i++){ resu
  • IOS一维数组转二维数组

    千次阅读 2015-12-28 15:23:49
    一维数组转二维数组  int bb = (int)self.OneRMBArray.count;    NSLog(@"bb-->%d",bb);  NSLog(@"self.OneRMBArray-->%@",self.OneRMBArray);    
  • 几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等,均含示例数据。另外还有EXCEL的常用命令语句精选。
  • js简单实现一维数组转二维数组

    千次阅读 2019-02-19 11:14:17
    // 一维数组转二维数组 var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] function arrToTwoDim(arr, n = 2) { var arr2 = [] for (var i = 0, j = 0; i &lt; arr.length; i += n) { // 初始化数组单个元素为数组 ...
  • 昨天遇到了一个需要对后端传来的一段数据做操作,是将一维数组转为二维数组,思考了半天,夜晚又和朋友讨论了一下,思路如下。(毕竟我只是个切图仔) let classRes = [ {className: '05',name: 'a1',age: '12',...
  • c++ 一维数组转二维数组

    千次阅读 2014-12-24 09:24:40
    a[20]的一维数组转换为二维数组(宽度为5) a的下标m; i=m/5; j=m%5; b[i][j]
  • js 一维数组转二维数组

    千次阅读 2018-12-04 23:34:13
    废话不多说直接上代码 var arr = ['0','1','2','3','4','5','6','7','8','9','10'...如果我们吧for 循环中的 len 换成arr.length 以后 第次循环删除了数组内容,数组长度会自动改变,就不能处理成我们预期的效果
  • 主要介绍了Java编程一维数组转换成二维数组,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
  • C语言总结第七章、数组一维数组一维数组的定义一维数组的引用一维数组的初始化程序举例二维数组及多维数组二维数组的定义二维数组元素的引用二维数组元素的初始化程序举例字符数组和字符串字符数组 第七章、数组 ...
  • 维数组转二维数组:Partition 一维数组转二维数组/二维数组变形:ArrayReshape 转一维数组:Flatten 分块矩阵合并:ArrayFlatten 使用方法例: Partition[{a,b,c,d,e,f},2] ArrayReshape[{a,b,c,d,e,f},{2,3...
  • 一维数组转换为二维数组

    千次阅读 2018-12-15 17:05:18
    实际实现:将原本的一维数组转换为二维数组,数组里面的每个元素为一个length为3的数组.在进行轮播的时候,循环两次进行输出 data(){ return{ hasWinArr:[],//一个一维数组 } }, methods:{ //处理假数据轮播图 ...
  • 用php递归将二维数组转换成一维数组 php基础
  • 二维数组转一维数组

    2015-04-13 20:58:19
    将labview内二维数组方便的转化为一维数组使用
  • 用C++语音实现一维数组二维数组写入txt,从txt中读取数据存到一维数组、二维数组,数组用指针表示
  • python 二维数组转一维数组

    万次阅读 多人点赞 2019-09-25 14:54:24
    import operator from functools import reduce a = [[1,2,3], [4,6], [7,8,9,8]] print(reduce(operator.add, a)) >>> [1, 2, 3, 4, 6, 7, 8, 9, 8]
  • 一维数组下标为index,二维数组长度为m * n,则: 一维数组转换为二维数组 row = index / n col = index % n 二维数组转换为一维数组 index = col + row * n
  • 一维数组是一条线 二维数组是一页纸 三维数组是一本书 四维数组是书架 五维数组是图书室2201(好几个书架) 六维数组是图书馆某一层,2楼/3楼,好几个图书室 七维数组是整个图书馆 第N维数组是...
  • 截取字符串后,一般都会得到一个一维数组,有时需要把这个以为数组转成相应行与列的二维数组。最大的不同便在于行数与列数的规定。下面是一个简单的例子,行与列可根据实际情况来取到,或规定。 /** * @author ...
  • php将一维数组转换成二维数组

    千次阅读 2019-02-21 16:25:20
    原来的数组  $fruit = array('a' =&gt; 'apple', 'b' =&gt; 'banana', 'c' =&gt; 'cranberry');   期望变成的数组 $fruit = array( array('key'=&gt;'a', 'val'=&gt;'apple'), ...
  • 几个Excel vba示例文件. 包括行列转置,表格数据到数组,一维数组转二维数组,单列转多列等。均含示例数据,如: 250B的文本测试数据,晶振微调后的频率测试数据等。 另外还有EXCEL的常用命令语句精选。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 443,824
精华内容 177,529
关键字:

一维数组转二维数组