2017-06-05 168 views
1

運行後,它在測試中看起來失敗:「應返回包含位於鍵處的數組中大於10的所有元素的數組」。我不明白爲什麼。創建一個數組,其值位於數組中的一個鍵中

var obj = { 
 
    key:[1,20,30] 
 
}; 
 

 
function getElementsGreaterThan10AtProperty(obj, key) { 
 
    
 
    var arr = []; 
 
    for (var prop in obj) { 
 
    for (var i = 0; i < obj[prop].length; i++) { 
 
     if (obj[prop][i] > 10) { 
 
     arr.push(obj[prop][i]); 
 
     } 
 
    } 
 
    } 
 
    return arr; 
 
} 
 

 
getElementsGreaterThan10AtProperty(obj,'key') 
 

 

 

回答

0

您沒有使用key參數傳遞給函數的一切,你for (var prop in obj)迭代是不必要的,因爲你現在在10中的所有屬性返回所有元素的數組obj,而不僅僅是key指定的那個。您需要刪除該循環,並使用key而不是prop

function getElementsGreaterThan10AtProperty(obj, key) { 
    var arr = []; 
    for (var i = 0; i < obj[key].length; i++) { 
    if (obj[key][i] > 10) { 
     arr.push(obj[key][i]); 
    } 
    } 
    return arr; 
} 
+0

感謝您的快速響應! – JeroenT

相關問題