我有一个函数,它使用数组中的最小数字。如果数组中没有字符串,则返回0 - JS
我所做的是我只使用typeof属性过滤了数字,并比较了Infinity的值。
现在,如果数组为空,它将返回0。
但是,如果数组只包含字符串或其他数据类型,它将返回无穷大。
这里是我的代码:
function findSmallestNumberAmongMixedElements(arr) {
var smallestNum = Infinity;
if(arr.length !== 0){
for(var i = 0; i < arr.length; i++){
if(typeof arr[i] === 'number' && arr[i] < smallestNum){
smallestNum = arr[i];
}
}
return smallestNum;
}
return 0;
}
var output = findSmallestNumberAmongMixedElements(['sam', 3, 2, 1]);
console.log(output); // --> 4
它必须返回0,以及如果有数组中没有号码。
任何想法我在这里做错了什么?
数组可能包含负数吗?如果不是,你可以将'smallestNum'初始化为'0'而不是'Infinity'。 –
'findSmallestNumberAmongMixedElements(['sam',3,2,1])'正在为我返回'1'。你能提供其他的测试用例吗? –
你上面的例子返回1而不是4. – stetsmando