亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數組總和返回 NaN

數組總和返回 NaN

互換的青春 2023-10-30 19:55:49
我有一個包含三個值和 1 個單獨值的數組,所有值均從表單獲取。我正在嘗試將頂部數字 (3) 與其他數字(12、3 和 31)相乘,然后將它們相加。這是我嘗試過的: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 HoeveelheidArr=[];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);}然而,正如您在圖片中看到的那樣,我不斷從控制臺返回&ldquo;不是數字&rdquo;。盡管控制臺顯示它們全部顯示為整數?你看到我做錯了什么了嗎?我也嘗試過:parseInt(value[i])?
查看完整描述

2 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

您的setAmount變量是來自 的字符串innerHTML

對兩個變量都使用parseInt()

total += parseInt(value[i]) * parseInt(setAmount);

更新

經過更深入的審查后,您發現了一些其他問題。

  • 您的setAmount變量是"",因為它沒有在 HTML 中設置。

  • 你正在循環HoeveelheidArr兩次

  • 你應該使用value而不是value[i]

我做了一個工作示例:

var HoeveelheidArr = [];

var total = 0;

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


function getData() {

  HoeveelheidArr = [];

  total = 0;

  $('#resultTable .HoeveelheidField > input').each(function() {

    HoeveelheidArr.push($(this).val() || 0);

  });


  console.log("HoeveelheidArr:", HoeveelheidArr);


  for (var i = 0; i < HoeveelheidArr.length; i++) {

    console.log("setAmount:", setAmount);

    total += parseInt(HoeveelheidArr[i]) * parseInt(setAmount);

  }


  console.log("Total:", total);

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<p>Aantal sets: <span id="dynamicSet">1</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>


<button onclick="getData()">Test</button>


查看完整回答
反對 回復 2023-10-30
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

為什么你使用 value[i] value 不是一個數組,它只是一個數字。

console.log([value[i]);

value[1] 和 value[2] 未定義,這就是為什么你得到 NaN

如果你告訴我你想通過這段代碼做什么,我可以糾正它


查看完整回答
反對 回復 2023-10-30
  • 2 回答
  • 0 關注
  • 120 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號