【发布时间】: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 语句并返回硬编码数组或空数组时,它会失败。很奇怪??
标签: javascript arrays object