一维数组转二维数组、交错数组
元数据:
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)); }