<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 關于arguments arguments是一個類數組集合,它不是數組,不能直接使用數組的方法 ## slice ``` //Array.prototype.slice = function(){} var ary = [12,23,34]; ary.slice(); //讓找到的slice方法執行,在執行 slic方法的過程中,才把ary數組進行了截取 ``` IE6~8中,不支持借用數組的slice實現將元素集合的類數組轉化為數組,但是arguments是支持的。 ``` var utils = { listToArray:function(likeAry){ var ary = []; try{ ary = Array.prototype.slice.call(likeAry); }catch(e){ for(var i=0;i<likeAry.length;++i){ ary[ary.length] = likeAry[i]; } } return ary; } } ``` ## toString ``` console.log([1,2,3,4,5].toString()) //1,2,3,4,5 ``` 模擬內置的slice實現數組克隆的功能 ```javscript Array.prototype.mySlice = function(start,end){ //this->當前要操作的這個數組ary var ary = []; end=end?end:this.length-1; for(var i=start;i<end;++i){ ary[ary.length] = this[i]; } return ary; } ``` ``` //--- --- --- //arguments變成真·數組原理 // for(var i=0;i<arguments.length;++i){ // ary[ary.length] = arguments[i]; // } // return ary; //通過call等將slice方法中的this替換成了aruguments ``` ## sort 返回排序后的數組。原數組已經被排序后的數組代替 sort默認不傳參可以處理10以內的數字排序 ``` ary.sort(); ``` 回調函數:把一個方法A當做參數值傳遞給另外一個函數B,然后在B執行的過程中,我們隨時根據需求讓A方法執行 ``` function A(){ } function b(){ fn(); fn(); fn(); } B(A) ``` ``` ary.sort(function(a,b){ //a->每一次執行匿名函數的時候,找到的數組中的當前項 //b->當前項的后一項 return a-b; //->升序 return b-a;//->降序 //->return的是一個>0 或 <=0的數,大于>0讓a和b交換位置,小于等于0,原來的位置不動 }) ``` ``` ary.sort(functio(a,b){ return 1; //永遠交換位置 }); ``` ### 二維數組排序 ``` var ary = [ {name:'克麗絲',age:78} ,{name:'安吉拉',age:13} ,{name:'艾伯特',age:107} ,{name:'梅森',age:256} ]; //->給二維數組排序,按照年齡由小到大進行排序 ary.sort(function(a,b){ return parseFloat(a.age) - parseFloat(b.age); }) ``` ### localeCompare ![](https://box.kancloud.cn/403c370d3d804972ced1038186673fc6_402x431.png) ``` ary.sort(function(a,b){ return a.name.localeCompare(b.name); }) ``` 關于sort實現: sort依據傳入的數組不同,選擇的算法不同。 ## 求最大值,最小值 1)sort排序法 ``` ary.sort(function(a,b){ return a-b; }) var min = ary[0]; var max= ary[ary.length-1]; ``` 2)`Math.min`需要將要比較的數一個個傳遞進來,這樣才可以得到最后的結果,一下放一個ary數組進來是不可以的 ``` var min = Math.min.apply(null,ary); ``` 或則通過`eval`和字符串拼接 ``` var max = eval(`Math.max(${ary.toString()})`) ``` 3)假設法:假設當前數組中的第一個值是最大值,然后拿這個值和后面的項逐一進行比較,如果后面某一個值比假設的還要大,說明假設錯了,我們把假設的值進行替換... ``` var max = ary[0],min=ary[0]; for(var i=1;i<ary.length;++i){ var cur = ary[i]; cur>max?max=cur:null; cur<min?min=cur:null; } ``` ## 求平均數 ``` //去掉最大和最小 function avgFn(){ //->1、 將類數組轉換為數組 var ary = Array.prototype.slice.call(arguments) //->2、 給數組排序,去掉開頭和結尾,剩下的就是求平均數 ary.sort(function(a,b){ return a-b; }); ary.shift(); ary.pop(); return eval(ary.join("+"))/ary.length.toFixed(2); } //xx.toFixed(n) number類型的方法,保留小數點后n位 ``` ``` function avgFn(){ [].sort.call(arguments,function(a,b){ return a-b; }); [].shift.call(arguments); [].pop.call(arguments); return eval([].join.call(arguments,"+")/arguments.length).toFixed(2) } ``` ## join ### undefined 和 join undefined這一項會直接被忽視,包括屬于它的`,` ``` let o = {a:1,b:2,c:3} console.log(o[undefined]) //undefined console.log([undefined,1].join('')) //1 ``` ## forEach **無法跳出循環!** 除了try catch 拋出異常,但顯然這沒鳥用
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看