假設有一數值陣列,如何在不影響原陣列的情況下,獲取陣列的最大值和最小值呢?
廢話不多說直接上**!
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 ...