簡體   English   中英

為什么在添加所有參數時得到NaN?

[英]Why am I getting NaN when adding all arguments?

我正在嘗試創建一個將所有參數加在一起的函數。 我不斷收到NaN 我究竟做錯了什么?

function sum() {
       var n = arguments.length;
       var total = 0;
    for(var i = 0; i < n; i++) {
        // code here
        total += n[i];
    }
    return total;
}

sum(1,2,3,4);

您需要從arguments獲取值,其中n只是一個數字,用於保存arguments的長度,而n[i]將是undefined 具有undefined結果的加法NaN

 function sum() { var n = arguments.length; var total = 0; for (var i = 0; i < n; i++) { // code here total += arguments[i]; } return total; } console.log(sum(1, 2, 3, 4)); 

什么是n[i]; 由於n僅應包含參數array長度,因此它本身不是array

您需要替換total += n[i]; total += arguments[i];

javaScript的經典缺點之一是NaN(不是數字)的基本原理。

NaN(不等於任何值)->發生i)未定義或錯誤操作的結果

ii)有毒:任何以Nan為輸入的算術運算都將得到NaN。

因此,在您的代碼中:undefined(n [i])+ number = NaN

<script>

        function sum() {
            var n = arguments.length;
            var total = 0;
            for (var i = 0; i < n; i++) {
                // code here
                total += arguments[i];
            }
            return total;//returns 10
        }
        sum(1, 2, 3, 4);

希望這有助於/達到目的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM