javascript - 数组等于自身加数字 = NaN

标签 javascript arrays

我一定是做了什么蠢事。数组newArea需要将所有区域的数据相加,即是全局的。区域由变量 p 表示。但是当我尝试将 newArea 数组添加到自身时,例如newArea[p] += otherArray,输出 NaN。甚至 newArea[p] += 1 也会输出 NaN。

有人能发现我做错了什么吗?这让我抓狂,而且我正在按时完成任务。

mm=0
    var maxVolume = 0;
    var tempCAGR = 0;
    var maxCAGR = 0;

    var newArray = [];
    var newRegions = [];
    var newConsValues = [];
    var newArea = [];

    for (var p=0; p<arrayRef[mm].length; p++) {//9 regions


        newArray[p] = [];

        for (var q=0; q<arrayRef[mm][p].length; q++) {//4 scenarios

            newArea[q] = [];

            if (q==0) {
                newRegions.push(arrayRef[mm][p][q][0]);
                newConsValues.push(arrayRef[mm][p][q][1]);
            }

            for (var r=0; r<dates.length; r++) {//time

                //console.log('p: '+p+', q: '+q+', r: '+r);

                if (p==0) {
                    newArea[q][r] = 1;
                } else {
                    newArea[q][r] += 1;
                }
            }

            arrayRef[mm][p][q].shift();


            tempCAGR = Math.pow(( arrayRef[mm][p][q][len] / arrayRef[mm][p][q][1] ),(1/len))-1;
            //console.log(newRegions[p]+', num: '+arrayRef[mm][p][q][len-1]+', denom: '+arrayRef[mm][p][q][0]+', len: '+len+', cagr: '+tempCAGR);
            newArray[p][q] = tempCAGR;

            maxCAGR = Math.max(maxCAGR,tempCAGR);
        }
    }

    console.log(newArea);

最佳答案

每次循环遍历 newArea 中的数组时,都会对其进行清理:

...loop q ...
   newArea[q] = []; // <-- resets the array at q pos
    ... loop r ...
            if (p==0) {
                newArea[q][r] = 1;
            } else {
                newArea[q][r] += 1;
            }

因此,当 p === 0 时,它将在 newArea 数组的 q 位置填充一个数组。但是,p 的下一次迭代会将它们清除,因此没有什么可求和的。

您可能想要保留旧数组或创建一个新数组(如果没有)。

newArea[q] = newArea[q] || [];

关于javascript - 数组等于自身加数字 = NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35391823/

相关文章:

javascript - 提交后联系 form7 数据插入到不同的数据库表中

javascript - 单击动画 div 并制作全宽 jQuery

javascript - D3 动态分层边缘捆绑 - 2 路导入

javascript - 如何(sinon) stub 外部模块函数?

javascript - Pagespeed 洞察报告分析

php - 在 Loop 中打乱值并与数组连接

Javascript多维数组错误

javascript - 在 React 组件中使用 .map 从数据库数组中渲染多个元素?

javascript - 是否有与 Array.prototype.find() 等效的 Javascript 可以在旧版浏览器上运行?

java - 将 ArrayList<> 对象传递给扩展 ArrayList 的类