将数组复制到另一个并用null替换缺少的字段

时间:2013-10-26 21:22:47

标签: javascript

我动态生成数组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
}

    }

2 个答案:

答案 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 );
}