js学习总结----获取数组最大值
生活随笔
收集整理的這篇文章主要介紹了
js学习总结----获取数组最大值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一共四個方法,面試的時候可以考慮:
var ary = [12,23,34,24,35,14,25,36]//1、排序法:從小到大排序,然后選擇最后一個為最大ary.sort(function(a,b){return a-b;})var min = ary[0];var max = ary[ary.length - 1];console.log(min,max)/*2、假設法:假設當前數組中的第一個值是最大值,然后拿這個值和后面的項逐一進行比較,如果后面某一項比假設的還要大,說明假設錯了,我們把假設的值進行替換和自定義屬性一樣,都是JS中最常用的編程思想*/var max = ary[0];for(var i = 0;i<ary.length;i++){var cur = ary[i];cur>max?max = cur:null;}//3、使用Math中的max/min方法實現,以下代碼實現不了console.log(Math.min(12,23,34,24,35,14,25,36));//它是在執行的時候,把需要比較的那堆數一個個的傳遞進來,這樣才可以得到最后的結果,一下放一個ary數組進來是不可以的//第一次嘗試Math.min([12,23,34,24,35,14,25,36])//join/toString ->"12,23,34,24,35,14,25,36"//eval:把一個字符串變為JS表達式執行//eval("12,23,34,24,35,14,25,36") 結果只會是最后一項 這里就涉及一個括號表達式的概念//第二次嘗試"Math.max("+ary.toString()+")"//'Math.max(12,23,34,24,35,14,25,36)' 首先不要管其他的,先把我們最后要執行的代碼都變成字符串,然后把數組中的每一項的值分別的拼接到這個字符串中var max = eval("Math.max("+ary.toString()+")")// 這個才是正解function fn1(){console.log(1)}function fn2(){console.log(2)}var obj = {name:'李四',fn:fn2};(fn1,fn2)();//只有fn2執行了->(x1,x2,x3...)括號表達式,一個括號中出現多項內容,中間用","隔開,但是我們最后獲取到的結果只有最后一項(fn2,obj.fn)();//執行的是obj.fn,但是執行的時候最后的this是window而不是obj(obj.fn)()// this 還是obj//apply方法var max = Math.max.apply(null,ary);?
轉載于:https://www.cnblogs.com/diasa-fly/p/7093370.html
總結
以上是生活随笔為你收集整理的js学习总结----获取数组最大值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 使用AIDL实现进程间的
- 下一篇: 启动VIP报CRS-1028/CRS-0