RT,首先我从服务器获取的数据是这样的
var mData =
[{
reportTitle:"报表1",
reportName:"近七周缺货率"
},
{
reportTitle:"报表1",
reportName:"近7周商品动销率对比"
},
{
reportTitle:"报表2",
reportName:"近7周商品动销率对比"
},
{
reportTitle:"报表2",
reportName:"近七周缺货率"
}];
目标(经过处理后)是这样的:
var results =
[{
reportTitle:"英达辉商业调拨店",
reportArray:
[{
reportName:"近七周缺货率"
},
{
reportName:"近7周商品动销率对比"
}]
},
{
reportTitle:"英达辉备货通店",
reportArray:
[{
reportName:"近七周缺货率"
},
{
reportName:"近7周商品动销率对比"
}]
}];
我用的方法是这样的:
var bizArray = new Array()
var mArray = new Array()
let count = 0,index = 0
for(let i = 0; i < mData.length - 1; i++){
addData()
if(mData[i].reportTitle != mData[i+1].reportTitle){
count++
index = 0
}
else{
index++
}
function addData (){
bizArray[count] = new Object()
bizArray[count].dataArray = new Array()
mArray[index] = new Object()
mArray[index].reportName = mData[i].reportName
bizArray[count].dataArray = mArray
console.log(i,mArray)
console.log(bizArray[count].dataArray[index].reportName)
}
}
我觉得我思路应该是对的,但是不知道为什么结果是错的,所以我在处理的过程中进行了打印,结果发现
console.log(bizArray[count].dataArray[index].reportName)
输出是正确的,但是mArray的输出是错误的,所以我想知道错误的具体原因,或者另一种可行的解决方案,谢谢