javascript - 变量在函数中灰显

标签 javascript arrays function

似乎我最初的问题已经解决,但该函数仅返回第一个子数组的总和。我不明白为什么函数外部的第一个 for 循环返回所有子数组的总和,但函数本身只返回第一个子数组的总和。我想它会再次循环每个子数组并将所有数字加在一起:

function loop(){
    for(let i =0; i < numSquare.length; i++){
        let loop1 = numSquare[i];
        let sum = 0;
        console.log(loop1)
        for(let k=0; k< loop1.length; k++){
            sum += loop1[k]
        }  
        return  (`${sum}`);
    }

}

在练习通过多数组循环时,我创建了一个函数来存储下面的循环值,但变量“loop2”在 Visual Studio 代码中显示为灰色,表示它未定义,即使我已经定义为等于 numSquare [我]?我正在尝试创建一个函数,因为第一部分无需在函数中即可工作。

我是不是做错了什么?

const numSquare = [
    [1,2,3],
    [4,5,6],
    [7,8,9]
];

for (let i = 0; i < numSquare.length; i++) {
    let loop1 = numSquare[i]
    let sum = 0;
    console.log(loop1)
    for (let k = 0; k < loop1.length; k++) {
        sum += loop1[k]
    }
    console.log(`${loop1} summs up to be ${sum}`)
}

//This one does not work because it is telling me loop2 is NOT defined but clearly is defined?

function loop(){
    for(let i = 0 ; i< numSquare.length; i++){
        let loop2 = numSquare[i]
        let sum2 = 0;
        for(let k=0; k< loop2.length; k++){
            sum2+= loop2[k]
        }
    }
    return console.log(`${loop2} sums up to be ${sum2}`)
}

最佳答案

由于您使用 let 定义变量,因此它具有 block 作用域,并且您尝试在控制台中访问不同的作用域

function loop(){
    for(let i = 0 ; i< numSquare.length; i++){
    |    let loop2 = numSquare[i]    <--- loop2
    |    let sum2 = 0;
    |    for(let k=0; k< loop2.length; k++){
    |        sum2+= loop2[k]
    |    }
    }
    // out of block so loop2 is not accessable
    return console.log(`${loop2} sums up to be ${sum2}`)
}

关于javascript - 变量在函数中灰显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60956690/

相关文章:

javascript - javascript中的形状类?

arrays - 检查数组中的字符串是否包含另一个数组中的子字符串

c - 是否可以实现一个可以在 C 中打印任何类型的任何数组的函数?

javascript - 当代码在本地托管时,Bootstrap Popover 不工作,但在 jsbin 上工作

javascript - 布伦特里客户端 : form submission failure

c++ - 在 C++ 中通过引用传递 unsigned char 数组

r - 如何将 ggplot 的 aes 参数传递给函数

javascript - 如何将重复查询合并到 javascript/jquery 中的一个函数

javascript - 我应该如何使用外部脚本构建一个 Meteor 项目?

javascript - 创建对象和对象数组