[英]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]
相同,這可能不是您想要的。 也許您想訪問位置i
( data[i]
)的數組,並獲取該數組的第一個值( [0]
)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.