簡體   English   中英

我不知道為什么我的 min function 不工作它一直給我 0 作為答案

[英]I have no Idea why is my min function not working it keeps on giving me 0 as an answer

所以這是我想出的 function 代碼我不知道它有什么問題。 它一直給 0 作為我的代碼。

 function minValue(array) { let min = 0; for (let i = 0; i < array.length; i++) { for (let j = 0; j < array[i].length; j++) { if (array[j][i] == "string") { min = Math.min(min, parseInt(array[j][i])); } else { min = Math.min(min, array[j][i]); } } } return min; } let matrix = [ [57, 71, 37, 99, 62, '83', '95', '54', 38, 25], [8, 64, 100, '51', 43, 21, 21, 33, 11, 43], [67, 25, 45, 67, 88, 72, 74, 77, 53, 38] ]; console.log(minValue(matrix));

我不斷得到0作為我的答案。

您的 function 不起作用,因為您使用0作為初始值,並且它小於所有其他值。 使用Infinity作為初始值。

注意:您已經在ij之間切換 - array[j][i] 我還將刪除條件,並始終轉換為數字(我在這里使用了+運算符)。

 function minValue(array) { let min = Infinity; for (let i = 0; i < array.length; i++) { for (let j = 0; j < array[i].length; j++) { min = Math.min(min, +array[i][j]); } } return min; } const matrix = [ [57, 71, 37, 99, 62, '83', '95', '54', 38, 25], [8, 64, 100, '51', 43, 21, 21, 33, 11, 43], [67, 25, 45, 67, 88, 72, 74, 77, 53, 38] ]; console.log(minValue(matrix));

另一種選擇是將矩陣展平為單個數組, map 將所有項目轉換為數字,並傳播到Math.min()

 const minValue = array => Math.min(...array.flat().map(Number)); const matrix = [ [57, 71, 37, 99, 62, '83', '95', '54', 38, 25], [8, 64, 100, '51', 43, 21, 21, 33, 11, 43], [67, 25, 45, 67, 88, 72, 74, 77, 53, 38] ]; console.log(minValue(matrix));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM