You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

函数内使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:36:04