重复失败的测试:给定对象和键,返回包含位于给定键的数组内元素的数组,满足条件

时间:2017-02-11 05:25:23

标签: javascript arrays object

The Link (you'll have to sign up)

虽然我的代码返回了预期的输出,但我仍然因为这个问题而未能通过测试。是测试问题还是我的代码?

问题......

给定一个对象和一个键,编写一个函数,该函数返回一个数组,该数组包含位于给定键的数组中满足条件的元素。

  • 如果array为空,则返回一个空数组。
  • 如果数组不符合条件,则返回一个空数组。
  • 如果给定键的属性不是数组,则返回一个空数组。
  • 如果键上没有属性,则返回一个空数组。

条件:小于100的元素。

代码

// expected output -> [20, 50, 0, 16] 

var obj = {
  key: [150, 20, 50, 100, 0, 16]
};



function getElementsLessThan100AtProperty(obj, key) {
  var arr = [];

  for (var i in obj.key){
    if(obj.key[i] < 100){
      arr.push(obj.key[i]);
    }
  }
  return arr;
}

getElementsLessThan100AtProperty(obj, 'key')// [20, 50, 0, 16] 

测试消息失败

should return an array containing all the elements less than 100 in the array located at key

Expected to equal 20,50,0,16.

给出了什么?我在这里遗漏了什么或测试错了吗?

1 个答案:

答案 0 :(得分:0)

如果您有一个返回数组的函数,则需要将该数组保存为某个数组。

所以在你的情况下,你的最后一行应该是这样的:

var arr = getElementsLessThan100AtProperty(obj, 'key');

arr现在保存已过滤的数组(如果条件不满足,则可能为空数组)。