javascript

时间:2018-10-08 17:40:58

标签: javascript

我有一个如下的方法代码。

static transformModel(control: AbstractControl,companyId:number):aDTO[]
{
    let finalRequestObj: aDTO[] = new Array();
    let request: aDTO;
    let counter: number = 0;
    let questionArray = [1,2,3,4,5,6,7];

    questionArray.forEach( num =>{
            counter= counter+1;
            request={
                userSeqId:0,//should be updated on server side
                companyId: companyId,
                questionId : counter,
                versionNumber : eueVersion,
                answer  :  findAnswer(counter,control),
                confirmTimeStr : "",
                screen : SCREEN
            };
            if(request.answer) {
                finalRequestObj.push(request);
            }
        }
    )

    return finalRequestObj;
}

在上述方法中,我如何不使用counter变量并使用questionArray值将其分配给请求对象内的questionId

3 个答案:

答案 0 :(得分:0)

forEach数组方法有第二个参数传递给它,它表示每个元素的索引:

questionArray.forEach( (num, counter) =>{
            request={
                userSeqId:0,//should be updated on server side
                companyId: companyId,
                questionId : counter,
                versionNumber : eueVersion,
                answer  :  findAnswer(counter,control),
                confirmTimeStr : "",
                screen : SCREEN
            };
            if(request.answer) {
                finalRequestObj.push(request);
            }
        }
    )

答案 1 :(得分:0)

如果要在数组中使用,只需使用forEach提供的值num,如下所示:

questionArray.forEach( num =>{
        request={
            // ...
            questionId : num,
            // ...
        };
       //...
    }
)

另一方面,如果要使用类似 auto-incremental 的值作为数组的引用,请使用forEach提供的值index作为第二个参数,就像这样:

questionArray.forEach( (num, index) =>{
        request={
            // ...
            questionId : index,
            // ...
        };
       //...
    }
)

答案 2 :(得分:0)

我认为您想要的是索引(foreach),然后:

questionArray.forEach( (num, index) =>{
   // use index variable
}