簡體   English   中英

使用JavaScript在for循環中進行邏輯處理

[英]Logic in for loop using JavaScript

嘗試使用JavaScript在for循環內執行某些計算時遇到問題:

for (var j = 0; j < count; j++) {
    var attributes;
    if (latlng !== 'Null') {
        attributes = results[j].feature.attributes;
    }                               
    var totalYC = parseInt(attributes["AGE_0_2"] + attributes["AGE_3_4"] + attributes["AGE_5_6"]);      
    var r = {
        pa: attributes["Planning Area Name"],
        sitearea: parseFloat(attributes["SHAPE_Area"] * 0.0001),
        total_pop: parseInt(attributes["TOTAL_POPULATION"]),
        scpr: parseInt(attributes["TOTAL_SCPR"]),
        yc: parseInt(totalYC),
        age_0_2: parseInt(attributes["AGE_0_2"]),
        age_3_4: parseInt(attributes["AGE_3_4"]),
        age_5_6: parseInt(attributes["AGE_5_6"]),        
    };

    r_array.push(r);
}

我希望我的totalYC只能匯總一次attributes["AGE_0_2"] + attributes["AGE_3_4"] + attributes["AGE_5_6"] 假設attributes["AGE_0_2"]為1, attributes["AGE_3_4"]為2, attributes["AGE_5_6"]為3。totalYC應該為6,但不要循環通過整個for循環並繼續加。

提前致謝。

您必須先逐項解析項目,然后再將其添加在一起。

用你的例子

  • 屬性[“ AGE_0_2”]為1
  • attribute [“ AGE_3_4”]為2
  • attribute [“ AGE_5_6”]為3

您的代碼

var totalYC = parseInt(attributes["AGE_0_2"] + attributes["AGE_3_4"] + attributes["AGE_5_6"]);

可能會返回123

如果您更改為

var totalYC = parseInt(attributes["AGE_0_2"]) + parseInt(attributes["AGE_3_4"]) + parseInt(attributes["AGE_5_6"]);

你現在應該得到6

編輯

因為JavaScript沒有類型變量,所以它假定您將字符串附加在一起。

因此,當您鍵入attributes["AGE_0_2"] + attributes["AGE_3_4"] + attributes["AGE_5_6"] ,就像您在說"1" + "2" + "3" JavaScript將嘗試將這些值附加在一起,並返回"123"

使用ParseInt方法告訴JavaScript首先嘗試將這些變量解析為數字。 JavaScript足夠聰明,知道+運算符因此是數學運算符,而不是附加運算符。

暫無
暫無

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

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