簡體   English   中英

無法讀取對象數組中最后一個對象的屬性(javascript)

[英]Unable to read an attribute of last object in array of objects (javascript)

我正在使用基於評分的待辦事項應用程序的基本原型。 我正在使用一個對象來存儲任務名稱及其等級。 例:

taskDetails = [
    {name: "C", rating: 69.3425},
    {name: "A", rating: 60.93875},
    {name: "D", rating: 57.32,
    {name: "B", rating: 59.795}
]

然后是一個函數checkAllEqual()

var checkAllEqual = function(){
    var flag = true;
    var temp = [];    
    for(var i = 0; taskDetails.length; i++){
        if(taskDetails[i].rating){     //Line no. 58 of the code
            var rating = taskDetails[i].rating;
            temp.push(parseInt(rating.toFixed(2)));
        }
    }

    console.log(temp);
    return flag;
}

此功能檢查所有待辦事項是否具有相同的評級。 它可以正常工作直到3次迭代,但在最后一次迭代中會拋出一個錯誤,即使括號內的值正確,即使在內部的“評級”中,“評級”也未定義! (在調試器中檢查)

我找不到原因。 請幫忙。

錯誤:

app.js:58 Uncaught TypeError: Cannot read property 'rating' of undefined
    at checkAllEqual (app.js:58)
    at <anonymous>:1:1

您的循環條件只是taskDetails.length ,因此這是一個無限循環,從數組末尾開始運行。 您要i < taskDetails.length

將循環條件更改為i < taskDetails.length

暫無
暫無

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

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