不影響原陣列的情況下,獲取陣列的最大值和最小值

2022-06-24 12:48:13 字數 1180 閱讀 3950

假設有一數值陣列,如何在不影響原陣列的情況下,獲取陣列的最大值和最小值呢?

廢話不多說直接上**!

1.我們用了最基礎的方法,遍歷整個陣列,用新陣列接收這些資料(注意,這個時候要深拷貝不然會該改變原陣列!),在新陣列中排序操作

var arr = [2, 1, 6, 99, 101, 4, 1, 23];

var newarr = ;

for(var i = 0; i < arr.length; i++) 

newarr.sort(function(a, b) );

console.log("陣列的最大值為:"+ newarr[newarr.length - 1] +",最小值為:"+ newarr[0]);

2.選擇排序的思想

var max = arr[0];

var min = arr[0];

for(var i = 1; i < arr.length; i++)

if(min >arr[i])

}console.log("陣列的最大值為:"+ max +",最小值為:"+ min);

3.使用es5中提供的陣列內建map方法,原理還是遍歷整個陣列,在新陣列中再進行操作

var newarr =;

var res = arr.map(function

(val, idx, self) )

newarr.sort(

function

(a, b) )

console.log("陣列的最大值為:"+ newarr[newarr.length - 1] +",最小值為:"+ newarr[0]);

4.使用es5中提供的陣列內建reduce方法,這種方法較難理解,我們結合**理解

var max = arr.reduce(function

(prev, val, idx, self)

else

}, arr[0])

var min = arr.reduce(function

(prev, val, idx, self)

else

}, arr[0])

console.log("陣列的最大值為:"+ max +",最小值為:"+ min);

方法還有很多,後續可更,也歡迎開發朋友們來討論其他方法!

不修改原陣列的情況下反轉陣列

問題 在不修改原陣列的情況下反轉陣列 大家都知道reverse 但是這個方法是會改變原來的陣列,怎樣既可以訪問到原來的陣列,有可以讓新陣列實現元素反轉。首先,複習一下在陣列的方法中,哪些是修改原有的陣列,哪些是生成新的陣列。es6新增的擴充套件運算子非常好用。arr 就是複製陣列 let testa...

在不影響線上服務情況下,刪除大表資料表

在不影響線上資料庫服務情況下,如何刪除資料庫中的大表 分析 資料庫中表涉及到db和os兩個層面 1 db層面刪表涉及到table cache的全域性唯一鎖,一旦資料表過大,會長時間占用全域性為一鎖,導致db卡死。2 os層面涉及到資料表物理檔案的儲存,包括時間的資料block和元資料inode 在e...

CSS在不影響總體布局情況下讓元素自由縮小

開始狀態 class box1 box1box1div class box2 box2box2div class box3 box3box3div class box4 box4box4div class box5 box5box5div body box1 box2 box3 box4 box5 ...