Freecodecamp基本JavaScript:嵌套循环已通过



我对这个挑战有问题,我一直在产品变量上得到一个引用错误。

问题是:

修改函数multiplyAll,使其返回arr子数组中所有数字的乘积。

function multiplyAll(arr) {
var product = 1;
// Only change code below this line
for (var i = 0; i < arr.length; i++){
for (var j = 0;j < arr[i].length;j++){
product = product * arr[i][j];
}
}
// Only change code above this line
return product;
}
multiplyAll([[1,2],[3,4],[5,6,7]]);
console.log(product);

我觉得我的代码是正确的,乘积应该等于5040。

您的函数multiplyAll运行良好。问题是,您的产品变量是在其内部声明的,因此您无法从外部访问。如果要打印multiplyAll([[1,2],[3,4],[5,6,7]](结果,你应该把它放在控制台上。log((:

console.log(multiplyAll([[1,2],[3,4],[5,6,7]]));

function multiplyAll(arr) {
var product = 1;
// Only change code below this line
for (var i = 0; i < arr.length; i++){
for (var j = 0;j < arr[i].length;j++){
product = product * arr[i][j];
}
}
// Only change code above this line
return product;
}
var prod=multiplyAll([[1,2],[3,4],[5,6,7]]);
console.log(prod);

当您从函数返回某些内容时,请确保将结果保存在要调用函数的变量中

您可以简单地执行

const multiplyAll = arr => arr.flat().reduce((a,c)=>a*c)
console.log( multiplyAll([[1,2],[3,4],[5,6,7]]) );

doc:
Array.prototype.flat((
Array.prototype.reduce((
https://schier.co/blog/method-chaining-in-javascript

最新更新