函数内使用for loop遍历数组元素,如何通过函数调用获取console.log输出?
问题解答
你当前代码的问题在于,最后一行console.log(calcAvgF)只是输出了函数对象本身,没有触发函数内部的代码执行,所以两个for循环里的打印逻辑完全没有运行。
解决方法
直接调用函数即可执行内部逻辑,输出两个for循环里的打印内容,把最后一行代码替换为calcAvgF()即可。
修改后的完整代码如下:
var scoreDolphins = [96, 108, 89]; var scoreKolas = [88, 91, 110]; var avgD_Div = scoreDolphins.length; console.log(avgD_Div); var avgK_Div = scoreKolas.length; console.log(avgK_Div); var calcAvgF = function() { for (let scoreItem_D = 0; scoreItem_D < scoreDolphins.length; scoreItem_D++) { console.log(scoreDolphins[scoreItem_D]); } console.log("---------------------------------------------------------------------------"); for (let socreItem_K = 0; socreItem_K < scoreKolas.length; socreItem_K++) { console.log(scoreKolas[socreItem_K]); } return calcAvgF; } // 调用函数触发内部逻辑 calcAvgF();
如果你需要把这些打印内容收集起来作为返回值使用,而不是仅输出到控制台,可以调整函数逻辑,把所有要打印的内容存入数组后返回:
var calcAvgF = function() { const outputList = [] for (let scoreItem_D = 0; scoreItem_D < scoreDolphins.length; scoreItem_D++) { outputList.push(scoreDolphins[scoreItem_D]) console.log(scoreDolphins[scoreItem_D]); } const divider = "---------------------------------------------------------------------------" outputList.push(divider) console.log(divider); for (let socreItem_K = 0; socreItem_K < scoreKolas.length; socreItem_K++) { outputList.push(scoreKolas[socreItem_K]) console.log(scoreKolas[socreItem_K]); } return outputList; } // 调用后即可拿到所有打印内容的数组 const printContent = calcAvgF(); console.log(printContent);
内容的提问来源于stack exchange,提问作者king kratos
相关产品推荐
相关产品推荐

