<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之旅 廣告
                >[success] # js 數組 ~~~ 1.讀《學習JavaScript數據結構與算法》第三版 ~~~ >[danger] ##### 在數組開頭插入元素 O(n) ~~~ 1.js 在數組開頭插入元素方法是 -- 'unshift',通過結構數組我們可以知道向前插入的效率 最低,表示為'O(n)',遵循向前插入是最慢的 2.向前插入時候首先要騰出數組里的第一個元素的位置,把所有的元素位置都向右移動, 也就是原來的 a[0] 的值給到現在a[1]的值,但是如果我們寫的方法是正序,就會出現,取得值 都是重新改變的值,為了不影響原來的值變化,應該使用倒敘,也就是如果當前數組長度是100 ,他的末尾角標為99,現在將數組首位添加一項,那么數組就應該從100 變成101 即末尾角標 為100,因此可以直接用現數組的長度作為倒敘也就是從100開始,那么現在a[100] 就應該是原來的 a[99] 將這個思路代碼化:'可以循環數組中的元素,以數組的長度未開始(因為前插加入后的末尾的角標整好是現' '在數組的長度)開始,將對應的前一個元素(i-1)的值賦給它(i),依次處理,最后把我們想要的值賦給第一個位置(索引 0)' ~~~ * 將這一個過程圖像化(書中的圖片) ![](https://img.kancloud.cn/f6/ac/f6acad3ec55f90f21ccc19c22e490d5d_471x303.png) ~~~ // 這里使用了倒序,如果正序就出現一個問題,[1,2,3,4] // 改變了原先的數組順序導致從第一次往后都是錯誤取值 Array.prototype.insertFirstPosition = function (value) { for(let i=this.length;i>0;i--){ this[i] = this[i-1] } this[0] = value } let list = [1,2,3,4,5] list.insertFirstPosition(-1) console.log(list) ~~~ >[danger] ##### 刪除數組開頭元素 O(n) ~~~ 1.js 刪除數組第一項使用的是 -- 'shift' 2.通過下面代碼發現移出第一項,數組因為長度沒變的原因,最后一項變成了undefined ~~~ * 將這一個過程圖像化(書中的圖片) ![](https://img.kancloud.cn/a1/b9/a1b9186a8fc07fcea4be05562df534aa_508x309.png) ~~~ 1.同理刪除不能用倒敘,因為會改變前一個值,用正序后發現首位變成了undefined沒有刪除,做一個方法 專門用來刪除所有的undefined ~~~ ~~~ let numbers = [1,2,3,4,5] for(let i=0,len = numbers.length;i<len;i++){ numbers[i] = numbers[i+1] } ~~~ * 改進后的寫法增加了一個去除undefined值的方法 ~~~ // 過濾數組中undefined值數據 Array.prototype.reIndex = function(myArray) { const newArray = []; for(let i = 0; i < myArray.length; i++ ) { if (myArray[i] !== undefined) { // console.log(myArray[i]); newArray.push(myArray[i]); } } return newArray; } // 手動移除第一個元素并重新排序 Array.prototype.removeFirstPosition = function() { for (let i = 0; i < this.length; i++) { this[i] = this[i + 1]; } // 生成的新數組最后一位是undefined return this.reIndex(this); }; numbers = numbers.removeFirstPosition(); ~~~
                  <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>

                              哎呀哎呀视频在线观看