2017-06-01 61 views
-1

给定一个对象和一个键,我创建一个函数,该函数返回一个数组,该数组包含位于给定键的数组中的所有元素,它们的位置小于100.基本上,如果数组为空,则它应该返回一个空数组。如果数组中不包含小于100的元素,它应该返回一个空数组。 如果给定键的属性不是数组,它应该返回一个空数组。 如果在键上没有属性,它应该返回一个空数组。如何从小于100的数组中获取所有值?

这里是我的代码至今:

function getElementsLessThan100AtProperty(obj, key) { 
    if(obj.key < 100){ 
    return obj.key; 
    } 
} 

var obj = { 
    key: [1000, 20, 50, 500] 
}; 
var output = getElementsLessThan100AtProperty(obj, 'key'); 
console.log(output); // --> MUST RETURN [20, 50] 

任何想法,我缺少的是什么?

+1

你是比较数组的一个数字。还需要按照[动态访问对象属性使用变量]使用'[]'对象表示法(https://stackoverflow.com/questions/4244896/dynamically-access-object-property-using-variable) – charlietfl

+0

为什么你需要分别传递对象和密钥?为什么不“得到......(obj.key)'......? – deceze

+1

这不是你如何使用变量来访问对象。 'obj.key'与'obj [“key”]'相同''你想要的是'obj [key]'。但还有其他问题 –

回答

1

使用过滤器方法来帮助解决这个问题。

注:Mozilla JavaScript Docs

的过滤器()方法创建与通过由提供的功能实现的测试中所有元素的数组。

像这样的东西应该做的伎俩:

var obj = { 
    key: [1000, 20, 50, 500] 
}; 

var output = obj['key'].filter(function(item){ 
    return item < 100; 
}); 

console.log(output); // --> MUST RETURN [20, 50] 
相关问题