一维数组转二维数组、交错数组

元数据:

var odata=["交易日期|股权激励计划类型|通知类型|交易类别",
"20160511| 1| 1| 1",
"20160511| 1| 1| 1",
"20160515| 1| 5| 1",
"20160512| 1| 2| 1",
"20160515| 1| 2| 1",
"20160512| 1| 5| 1",
"20160515| 1| 1| 1"];
希望日期相同的组合为一个二维数组的子数组
期望结果为:
[
["20160511|             1|       1|      1","20160511|             1|       1|      1"],
["20160515|             1|       5|      1","20160515|             1|       2|      1","20160515|             1|       1|      1"],
["20160512|             1|       2|      1","20160512|             1|       5|      1"]
]
直接上代码
var odata=["交易日期|股权激励计划类型|通知类型|交易类别",
           "20160511|             1|       1|      1",
           "20160511|             1|       1|      1",
           "20160515|             1|       5|      1",
           "20160512|             1|       2|      1",
           "20160515|             1|       2|      1",
           "20160512|             1|       5|      1",
           "20160515|             1|       1|      1"];
           transArray(odata);
function transArray(odata)
{
    odata.shift();//删除第一行元素
    var resultArray=[];//存放结果集
    var indexArray=[];//存放结果下标
    var len,index,itemArray,newArray;
    odata.forEach(element => {
        itemArray=element.split('|');
        index=indexArray[itemArray[0]];
        if(index==null||index==undefined)
        {
            newArray=[];
            newArray.push(element);
            len=resultArray.push(newArray);
            indexArray[itemArray[0]]=len-1;

        }else{
            resultArray[index].push(element);
        }
    });
    
console.log(JSON.stringify(resultArray));
}

猜你喜欢

转载自www.cnblogs.com/stubborn-donkey/p/11394688.html