如何解决这段JavaScript乘法函数问题?预期结果需达5000+
问题排查与解决方案
错误原因
你的代码里存在拼写错误:两处数组长度属性都被写成了lenght,而JavaScript数组的长度属性正确名称是length。
当访问arr.lenght时,由于数组不存在该属性,会返回undefined。循环条件i < undefined会被转换为i < NaN,结果为false,导致外层循环直接跳过,product始终保持初始值1,自然得不到预期的5000+结果。
修正后的代码
function multiplyAll(arr) { var product = 1; for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr[i].length; j++) { product *= arr[i][j]; } } return product; } var product = multiplyAll([[1,2], [3,4],[5,6,7]]); console.log(product); // 输出 5040
验证结果
修正后运行代码,会计算1*2*3*4*5*6*7 = 5040,完全符合你预期的5000+结果。
内容的提问来源于stack exchange,提问作者spython
相关产品推荐
相关产品推荐

