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

矩阵每行正数求和生成数组:首列负数误计入的代码修复求助

修复矩阵每行正数求和的代码问题

问题:需要生成一个由矩阵每行正数之和组成的数组,但现有JavaScript代码会将首列的负数也计入求和结果。

原代码存在的问题

  • 初始化求和变量posSum时,直接赋值为当前行的首列元素myArray[i][0],无论该元素是否为正数,导致负数被直接计入总和
  • 外层循环条件使用myArray[0].length,逻辑上应遍历矩阵的行数(myArray.length),保证代码对不同行数的矩阵都适用
  • 内层循环仅从j=1开始遍历,没有统一判断所有元素的正负性

修复后的完整代码

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
    <div id="result-container"></div>
    <script>
        let myArray = []; 
        
        // 生成3x3的随机矩阵,元素范围-9到10
        for (let i = 0; i < 3; i++) { 
            myArray[i] = [];  
            for (let j = 0; j < 3; j++) { 
                myArray[i][j] = Math.floor(Math.random() * 20 - 10) + 1;  
            } 
        } 
        
        let output = JSON.stringify(myArray) + "<br>";
        console.log(myArray);
        
        let F = [];
        // 遍历矩阵的每一行
        for (let i = 0; i < myArray.length; i++) {
            let posSum = 0; // 初始化求和为0
            // 遍历当前行的所有元素
            for (let j = 0; j < myArray[i].length; j++) {
                if (myArray[i][j] > 0) {
                    posSum += myArray[i][j];
                }
            }
            F.push(posSum);
        }
        
        output += `Array F: ${F}`;
        console.log(F);
        document.getElementById('result-container').innerHTML = output;
    </script>
</body>
</html>

修复说明

  • 将posSum初始值设为0,避免直接引入非正数元素
  • 外层循环改为遍历矩阵的行数myArray.length,提升代码通用性
  • 内层循环从j=0开始,对当前行的所有元素进行正负判断,仅累加正数

内容的提问来源于stack exchange,提问作者MihaVar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:32:24