创建一个数组,其值位于数组中的一个键中
问题描述:
运行后,它在测试中看起来失败:“应返回包含位于键处的数组中大于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;
}
感谢您的快速响应! – JeroenT