重复失败的测试:给定对象和键,返回包含数组中元素的数组,位于给定键处,满足条件
Posted
技术标签:
【中文标题】重复失败的测试:给定对象和键,返回包含数组中元素的数组,位于给定键处,满足条件【英文标题】:Repeated failed tests for: Given object and key, return array containing elements within the array, located at the given key, that meet condition 【发布时间】:2017-06-29 13:54:29 【问题描述】:The Link (you'll have to sign up)
虽然我的代码返回了预期的输出,但我不断收到针对闲置问题的失败测试。是测试有问题还是我的代码有问题?
问题...
给定一个对象和一个键,编写一个函数,该函数返回一个数组,该数组包含位于给定键处的数组中满足条件的元素。
如果数组为空,则返回一个空数组。 如果数组不满足条件,则返回一个空数组。 如果给定键的属性不是数组,则返回一个空数组。 如果键处没有属性,则返回一个空数组。条件:元素少于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.
什么给了?是我遗漏了什么还是测试有误?
【问题讨论】:
看来测试是我的错。您应该仔细检查预期的输出是否是一个数组。 显示你的测试代码和远程key
参数没有使用。
这也是我对“key”参数的看法,没有必要。无法访问测试输出的代码。测试确实需要一个数组。如果我将函数的返回与预期输出硬编码为数组,则该部分测试通过,但空数组测试显然失败。当我使用 if 语句并返回硬编码数组或空数组时,它会失败。很奇怪??
【参考方案1】:
如果你有一个返回数组的函数,你需要将该数组保存到某个东西。
所以在你的情况下,你的最后一行应该是这样的:
var arr = getElementsLessThan100AtProperty(obj, 'key');
arr
现在保存过滤后的数组(或可能为空数组,如果条件不满足)。
【讨论】:
以上是关于重复失败的测试:给定对象和键,返回包含数组中元素的数组,位于给定键处,满足条件的主要内容,如果未能解决你的问题,请参考以下文章