控制台在计算后返回NaN

问题描述 投票:-1回答:1

我有一个包含三个值的数组,另外1个值都从表单中获取。

enter image description here

我是tryint,将头号与另一个相乘并将其相加。

这是我尝试过的:

HTML:

 <p>Aantal sets: <span id="dynamicSet"></span></p>
        <table id="resultTable" cellpadding="1" cellspacing="1" border="1">
            <tr>
                <th scope="col"></th>
                <th scope="col">Hoeveelheid</th>
                <th scope="col">Gewicht x KG</th>
            </tr>
            <tr>
                <td>1</td>
                <td class="HoeveelheidField"><INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1" ></td>
                <td class="GewichtField"><INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1" ></td>
            </tr>
            <tr>
                <td>2</td>
                <td class="HoeveelheidField"><INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1" ></td>
                <td class="GewichtField"><INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1" ></td>
            </tr>
            <tr>
                <td>3</td>
                <td class="HoeveelheidField"><INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1" ></td>
                <td class="GewichtField"><INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1" ></td>
            </tr>
        </table>

和我的JS

var total = 0;
const setAmount = document.getElementById("dynamicSet").innerHTML;

function getData(){
    $('#resultTable .HoeveelheidField > input ').each(function() {
        HoeveelheidArr.push($(this).val());
    });

    console.log(HoeveelheidArr);

       HoeveelheidArr.forEach(function getReps (value) {
           console.log(value);
           for(var i = 0; i < HoeveelheidArr.length; i++){
               total += value[i] * setAmount;
           }

       });
    console.log(total);
}

但是,正如您在图片中看到的那样,我一直从控制台返回“ Not a Number”。你看到我在做什么吗?

javascript dom foreach console nan
1个回答
0
投票

控制台为您提供了有关错误之处的重要线索:Not a Number。这意味着您正在尝试对非数字内容进行数学运算。通常,这是因为您正在使用字符串而不是实现它。

在尝试进行数学运算之前,将value[i]强制为整数,将parseInt(value[i])强制为整数,如果将十进制/浮点数强制为parseFloat(value[i]),则为强制数字。

调试时,您可以在该控制台中执行typeof value[i]以查看类型是什么。

© www.soinside.com 2019 - 2024. All rights reserved.