创建一个数组,其值位于数组中的一个键中

问题描述:

运行后,它在测试中看起来失败:“应返回包含位于键处的数组中大于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') 
 

 

 

您没有使用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