遇到這個問題很可能我做錯了,但我想在陣列中找到最小和最大的數字并將其回傳給一個新物件,如果這個陣列是空的,我想要一個簡單的空物件。這是我使用的邏輯
function findBiggestAndSmallest(numbers) {
const biggest = Math.max(...numbers);
const smallest = Math.min(...numbers);
if (numbers === []) {
return {};
}
return { biggest, smallest };
}
console.log(findBiggestAndSmallest([]));
console.log(findBiggestAndSmallest([2,1,5,100,20]));
只要我將數字放入陣列中,它就可以正常作業,但是當我留下一個空陣列時,結果是 -infinity 和 Infinity,即使我指定如果引數是一個空陣列,則只回傳一個空物件。
謝謝您的支持。
uj5u.com熱心網友回復:
if 陳述句“if(numbers === [])”是陣列的比較,陣列是一種特殊型別的物件。物件與它們的參考一起存盤,因此您無法以這種方式比較陣列的內容相等性,因為比較將檢查兩個物件是否指向記憶體中完全相同的位置。
// This will ALWAYS return false
console.log([]===[])
function findBiggestAndSmallest(numbers) {
// Always do error handling first :)
if (!numbers.length) {
return {}
}
const biggest = Math.max(...numbers)
const smallest = Math.min(...numbers)
return { biggest, smallest }
}
// Now returns empty object, maybe consider just returning false
console.log(findBiggestAndSmallest([]))
// Example
console.log(findBiggestAndSmallest([2,1,5,100,20]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512799.html
上一篇:資料不一致的json
