一維數組轉二維數組、交錯數組

元數據:數組

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));
}
相關文章
相關標籤/搜索