我有一個函數,它使用數組中的最小數字。如果數組中沒有字符串,則返回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