首页 > 解决方案 > 为什么我得到参考错误,我的代码有什么问题?

问题描述

let radius = [3, 2, 1, 4];

function area(radius) {
    let tArea = [];
    let circumference = [];
    let diameter = [];

    for (let i = 0; i < radius.length; i++) {
        tArea.push(Math.PI * radius[i] * radius[i]);
        circumference.push(2 * Math.PI * radius[i]);
        diameter.push(2 * radius[i]);
    }
    return tArea;
    return circumference;
    return diameter;
}

console.log(area(radius));
console.log(area(circumference));
console.log(area(diameter));

你好专家,我不明白,为什么这段代码不起作用。我收到一个参考错误。如果可能,请解释一下并教我如何调试代码,这样我就不会因为小错误而打扰你们。谢谢你。

标签: javascript

解决方案


我不知道你到底想做什么,但这里有几件事你做错了。

  1. circumeferencediameter在函数范围内定义,并且您试图在函数外部访问它,这会导致此错误。
  2. 您正在尝试使用多个 return 语句从函数返回多个值,这是不可能的,因为第一次 return 将结束函数。出于您的目的,您可以简单地从函数中返回一个包含所需值的对象。

看下面的代码,

let radius = [3, 2, 1, 4];

function area(radius) {
    let tArea = [];
    let circumference = [];
    let diameter = [];

    for (let i = 0; i < radius.length; i++) {
        tArea.push(Math.PI * radius[i] * radius[i]);
        circumference.push(2 * Math.PI * radius[i]);
        diameter.push(2 * radius[i]);
    }
    return {area: tArea, circumference, diameter};
}

const {area: calculatedArea, circumference, diameter} = area(radius);

console.log(calculatedArea);
console.log(circumference);
console.log(diameter);


推荐阅读