文章插圖

文章插圖
原生Math.max方法
Math.max 方法不能接收數組,可以使用ES6的…將數組打散
const arr = [111, 12, 111, 34, 2, 5, 76];console.log(Math.max(...arr));當然也可以用apply方法調用console.log(Math.max.apply(null, arr));遍歷獲取最大值遍歷數組,依次比較,保存較大的數,最終得到的就是最大值,這里使用forEach遍歷
function max2(arr) {let result = -Infinity;arr.forEach((item) => {if (item > result) {result = item;}});return result;}console.log(max2(arr));利用排序獲取最大值將數組使用sort方法排序后,第一個元素或最后一個元素就是最大值,再用shift或者pop方法取出(由升序還是降序決定),值得注意的是這兩個方法會修改原數組,可以使用slice方法復制一份數組再執行彈出元素操作
function max3(arr) {return arr.sort((a, b) => a - b).slice().pop();}console.log(max3(arr));使用filter排除小的值使用filter函數依次取出<自身的元素,當取不出元素即返回的函數長度===零時,就取得了最大值,至于為什么用遞歸不用循環,用IIFE不用先聲明后使用,嗯,就是單純的不想
(function greater(arr, idx) {const res = arr.filter(item => item > arr[idx]);if (res.length === 1) {console.log(res[0]);return res[0];}greater(arr, idx + 1);})(arr, 0);使用every判斷自己是否是最大值使用every的原理和使用filter的原理類似,即當所有元素都<=本身的時候,本身就是最大值
(function greater(arr, idx) {if (arr.every(item => item <= arr[idx])) {console.log(arr[idx]);return arr[idx];}greater(arr, idx + 1);})(arr, 0);【js獲取對象屬性值的方法 js獲取值的幾種方法】使用遞歸模擬數組方法和上面兩個方法類似,只是內層用了遞歸和IIFE模擬every
(function outer(arr, i) {let flag = function inner(arr, j) {if (arr[j] <= arr[i]) {return false;}return arr.length < j + 1 ? inner(arr, j + 1) : true;}(arr, 0);if (flag) {console.log(arr[i - 1]);return arr[i - 1];}outer(arr, i + 1);})(arr, 0);
- 袁百梓卉和奚夢瑤對比照 袁百梓卉撞臉對象很多啊
- 把對象撩到臉紅的污句子,別種花,種草莓吧
- 網上相親對象怎么約會
- 相親對象第一次約會后想牽手 第一次約會該不該牽手
- 三調數據庫屬性表 三調屬性字段縮寫代碼
- 一個女人對男人的曖昧 女人對曖昧對象怎么處理關系
- 男女處對象時應該了解哪些知識 如何更深入了解男朋友
- 2019撩男生超甜套路,手動艾特對象
- 跟對象表達愛意的情話 給女友表達愛意的句子撩妹句子
- 小米手機一鍵root權限獲取 天貓魔盒一鍵root權限獲取
