簡體   English   中英

為什么我的代碼跳過if語句,只返回else部分? JS

[英]Why is my code skipping the if-statement and only returning the else part? JS

對CodeWars的新成員進行分類

要成為高級會員,會員必須年滿55歲,並且讓分差大於7。在這個門球俱樂部,讓分范圍是-2到+26; 球員越好,讓分越低。

輸入輸入將包含一個列表列表,每個列表包含兩個項目。 每個列表都包含單個潛在成員的信息。 信息由一個人的年齡的整數和一個人的障礙的整數組成。

我的代碼跳過了if部分; 它只會返回“打開”,而不會返回“高級”

我已經在stackoverflow上尋找了類似的問題。 但是,我在JavaScript中找不到一個(見過Java,CSS,HTML,Python等)。 另外,已經問過的問題似乎更多地與if語句中的if語句有關,或者它們具有相反的問題,即跳過else語句。 我嘗試過切換“打開”和“高級”檢查,但這不起作用。 在對字符串使用int之前,我遇到了問題,反之亦然,但是在這種情況下,我認為這不應該是問題,因為它們都是整數。

function openOrSenior(data){
  var array = [];
  for(var i = 0; i < data.length; i++) {
    var age = data[i[0]];
    var handicap = data[i[1]];
    if (age >= 55 && handicap > 7) {
      array.push("Senior");
    } else {
      array.push("Open");
    }
  }
  return array;
}

測試清單

Test.assertSimilar(openOrSenior([[45, 12],[55,21],[19, -2],[104, 20]]),['Open', 'Senior', 'Open', 'Senior']) => returned [['Open', 'Open', 'Open', 'Open'])

Test.assertSimilar(openOrSenior([[59, 12],[55,-1],[12, -2],[12, 12]]),['Senior', 'Open', 'Open', 'Open']) => returned [['Open', 'Open', 'Open', 'Open'])

應用0、1索引時,需要對其進行更改以查看子數組

var age = data[i][0];
var handicap = data[i][1];

 function openOrSenior(data){ var array = []; for(var i = 0; i < data.length; i++) { var age = data[i][0]; var handicap = data[i][1]; if (age >= 55 && handicap > 7) { array.push("Senior"); } else { array.push("Open"); } } return array; } console.log(openOrSenior([[45, 12],[55,21],[19, -2],[104, 20]])); console.log(openOrSenior([[59, 12],[55,-1],[12, -2],[12, 12]])); 

i是一個數字,例如0,所以i[0] undefined因為數字沒有屬性。 因此,執行data[i[0]]data[undefined]相同,這可能不是您想要的。 也許您想訪問位置idata[i] )的數組,並獲取該數組的第一個值( [0] )?

暫無
暫無

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

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