我动态生成数组GeneratedReport as,
Generated[0]=[10];
Generated[1]=[1,5];
Generated[2]=[10,6,7];
从上面的数组我需要创建1个新数组FinalReport,其中我需要上面数组中的3个值,例如Generated [0]应该给出3个值,如果不是那么2个缺失值应该用Null或0替换。
FinalReport应该是,
finalReport=[10,0,0,1,5,0,10,6,7]
我尝试了下面的代码和很多东西,但没有工作。请建议,
我知道下面的代码不正确但只需要向您展示所有努力
//iterating temp array
for(var i=0;i<GenerateReportSep.length;i++)
{
var genLen=GenerateReportSep[i].length;
//loop throgh each array
for(var k=0;k<GenerateReportSep[i].length;k++)
{
//check lenth with 3 or what ever no. required in pdf
if(genLen<3)
{
GenerateReport[seq]="NULL";
genLen++;
}
else
{
//store value in
GenerateReport[seq]=GenerateReportSep[i][k];
}
}//end of check each generatedsep[i] array
}
}
答案 0 :(得分:1)
这是一个解决方案:
var finalReport = [];
for (i = 0; i < Generated.length; i++) {
var currArr = Generated[i];
var numZeros = 3 - currArr.length;
for (j = 0; j < currArr.length; j++) {
finalReport.push(currArr[j])
}
while (numZeros) {
finalReport.push(0);
numZeros--;
}
}
的 DEMO 强>
答案 1 :(得分:0)
您可以使用此功能,将0替换为默认值:
var n, e, finalReport = [], tmp;
for ( n = 0, e = GenerateReportSep.length; n < e; n++ )
{
tmp = GenerateReportSep[n];
finalReport.push( tmp[0] || 0 );
finalReport.push( tmp[1] || 0 );
finalReport.push( tmp[2] || 0 );
}