我有一个如下的方法代码。
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
?
答案 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
}