簡體   English   中英

JavaScript中的forEach數組函數

[英]forEach array function in 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

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

如果要使用數組中的值 ,只需使用forEach提供的num值,如下所示:

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

另一方面,如果要使用像自動增量值這樣的東西作為數組的引用,請使用forEach提供的值index作為第二個參數,如下所示:

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

我認為您想要的是索引( foreach ),然后這樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM