[英]Finding min and max in array Javascript
所以我試着找到一個數組的最小值和最大值,並想調用 function。 我編寫了這段代碼,但它不起作用。 我只是不明白為什么。
function getMinMax(arr){
let maximum = Math.max(arr);
let minimum = Math.min(arr);
let result = ([maximum, minimum]);
return result;
};
getMinMax([10,3,8,1,33])
您嘗試傳遞數組,但函數(最小值、最大值)只接受數字 arguments。
您需要使用擴展運算符 ( ...
)將數組解壓縮為 arguments 數組:
const arr = [10, 3, 8, 1, 33];
const min = Math.min(...arr);
const max = Math.max(...arr);
所以,你的代碼應該是這樣的:
function getMinMax(arr){
let maximum = Math.max(...arr);
let minimum = Math.min(...arr);
let result = ([maximum, minimum]);
return result;
};
getMinMax([10,3,8,1,33])
您可以通過 2 種方式找到最大值和最小值。 第一種方法你 go 在 javascript 中使用最大和最小形式數學 function,如果你需要在必須從最大值和最小值設置數字時使用,像這樣:
let maximum = Math.max(10, 3, 8, 1, 33);
let minimum = Math.min(10, 3, 8, 1, 33);
現在你有一個數組,所以你必須轉換為如上,例如:當你使用...時讓數組 = [1,2,3,4,5] 在數組之前你將數組轉換為:1,2,3 ,4,5 例如:
function getMinMaxWithMath(arr){ // Math.max(10,3,8,1,33) let maximum = Math.max(...arr); // Math.min(10,3,8,1,33) let minimum = Math.min(...arr); let result = ([maximum, minimum]); return result; }; console.log('getMinMaxWithMath ', getMinMaxWithMath([10,3,8,1,33]));
您可以使用 for 循環的第二種方式,例如:
function getMinMaxForLoop(arr){ let maximum = arr[0]; let minimum = arr[0]; for (let i = 0; i < arr.length; i++) { if (maximum < arr[i]) { maximum = arr[i]; } else { minimum = arr[i]; } } let result = ([maximum, minimum]); return result; }; console.log('getMinMaxForLoop: ',getMinMaxForLoop([10,3,8,1,33]))
您可以從此鏈接查看 output ;
如果要使用此方法,則需要構造數組
function getMinMax(arr) {
let maximum = Math.max(...arr);
let minimum = Math.min(...arr);
let result = [maximum, minimum];
return result;
};
getMinMax([10, 3, 8, 1, 33]);
const getMinMax = (arr) => { const sortedArr = arr.sort((a,b) => a - b); const min = sortedArr[0]; const max = sortedArr[sortedArr.length - 1]; return [min, max]; }; console.log(getMinMax([10,3,8,1,33]))
您還可以使用Array.sort()
來實現您想要的結果。
你也可以試試這個簡單易懂的數學
function max(arr) { let i; let max = arr[0] let min = arr[0] for (let i = 0; i < arr.length; i++) { if (arr[i] > max) { max = arr[i] } else if (arr[i] < min) { min = arr[i] } } let res = (["min: " + min, "max: " + max]) return res } console.log(max([10, 3, 8, 1, 33]))
或者,作為單線(沒有什么新東西,只是更緊湊):
const getMinMax=arr=>[Math.min(...arr),Math.max(...arr)]; console.log(getMinMax([10,3,8,1,33]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.