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"]; 希望日期相同的組合為一個二維陣列的子陣列 期望結果為: [ ["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));
}