<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] >[success] # 30s Array--比較篇(二) ~~~ 1.本章節代碼通過整理30s 項目中數組篇章知識點,對涉及數組比較邏輯代碼知識點進行整理 ~~~ >[info] ## 檢查提供值是否為指定類型 ~~~ 1.先在有個需求'檢測引用類型',最簡單的辦法是用'instanceof'直接做類型判斷, 但是現在不想涉及到繼承,只想判斷到當前 ~~~ >[danger] ##### 案例說明 ~~~ 1.首先需要排除null 和 'undefined' 特殊情況 2.需要知道的知識點 實例的構造函數屬性(constructor) 和 類(js叫構造函數)判斷是true const {log} =console class Test{} const test = new Test(); log(test.constructor === Test) // true ~~~ [原文鏈接](https://www.30secondsofcode.org/js/s/is) ~~~ const {log} =console class Test{} class Test1 extends Test{} const test = new Test(); const test1 = new Test1(); // 返回的true 因為instanceof 會一直往原型鏈上找 console.log(test1 instanceof Test) // true const is = (type, val) => ![, null].includes(val) && val.constructor === type; // 只判斷當前的不在像上找 log(is(Test,test1)) // false log(is(Test1,test1)) // true // ----------更多例子--------------- is(Array, [1]); // true is(ArrayBuffer, new ArrayBuffer()); // true is(Map, new Map()); // true is(RegExp, /./g); // true is(Set, new Set()); // true is(WeakMap, new WeakMap()); // true is(WeakSet, new WeakSet()); // true is(String, ''); // true is(String, new String('')); // true is(Number, 1); // true is(Number, new Number(1)); // true is(Boolean, true); // true is(Boolean, new Boolean(true)); // true ~~~ >[info] ## 判斷該類型是不是可迭代對象 ~~~ const isArrayLike = obj => obj != null && typeof obj[Symbol.iterator] === 'function'; isArrayLike([1, 2, 3]); // true isArrayLike(document.querySelectorAll('.className')); // true isArrayLike('abc'); // true isArrayLike(null); // false ~~~ [原鏈接](https://www.30secondsofcode.org/js/s/is-array-like) >[info] ## 檢查數字數組是否已排序 ~~~ 1.舉例子[0, 1, 2, 2] 是升序排序,[4, 3, 2] 是降序排序,[4, 3, 5] 沒有進行排序 ~~~ [is-sorted](https://www.30secondsofcode.org/js/s/is-sorted)) >[danger] ##### 30s ~~~ 1.-1(降序)或1(升序),0為沒排序 ~~~ ~~~ const {log} = console const isSorted = arr => { if (arr.length <= 1) return 0; const direction = arr[1] - arr[0]; for (let i = 2; i < arr.length; i++) { // 這里的差值比,如果前后兩次的差的乘積大于0 // 說明前后兩次 差值比都一樣小 或者一樣大 // 注意說明 小于0 才返回0 if ((arr[i] - arr[i - 1]) * direction < 0) return 0; } return Math.sign(direction); }; ~~~ >[info] ## 兩個可迭代對象,A是否為B的子集 ~~~ 1.現在有兩個可迭代對象想知道,A是否為B的子集,現在有個兩個數組 [1, 5],[1, 2, 3, 4] 這兩個可迭代對象對比后得到結果false [1, 2],[1, 2, 3, 4]這兩個可迭代對象對比后得到結果true ~~~ [sub-set](https://www.30secondsofcode.org/js/s/sub-set) >[danger] ##### 30s ~~~ 1.使用set 讓可迭代對象都具有has 屬性 2.配合every 屬性 ~~~ ~~~ const {log} = console // 檢查 const subSet = (a,b)=>{ const sA = new Set(a),sB = new Set(b) return [...sA].every(v=>sB.has(v)) } log(subSet(new Set([1, 2]), new Set([1, 2, 3, 4]))) log(subSet(new Set([1, 5]), new Set([1, 2, 3, 4]))) ~~~ >[info] ## 檢測指定key是否存在數組對象中 ~~~ 1.現在有個對象數組 [ { user: 'Tinky-Winky', sex: 'male' }, { user: 'Dipsy', sex: 'male' }, ] 判斷 數組中每一項是否都有sex字段的 key ~~~ [truth-check-collection](https://www.30secondsofcode.org/js/s/truth-check-collection) >[danger] ##### 30s ~~~ const truthCheckCollection = (collection, pre) => collection.every(obj => obj[pre]); truthCheckCollection( [ { user: 'Tinky-Winky', sex: 'male' }, { user: 'Dipsy', sex: 'male' }, ], 'sex' ); // true ~~~
                  <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>

                              哎呀哎呀视频在线观看