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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                [TOC] >[success] # 獲取兩數組中交集 ~~~ 1.獲取交集,即過濾出兩個數組中相同項,也就是A數組某一項是否在B數組中的某一項 ~~~ >[info] ## 解決思路 ~~~ 1.使用filter 和 some配合,A過濾出來的某個元素是否在B中存在存在則作為filter過濾條件 2.使用filter 和 set 配合,A中的元素是否 has 在B中set 元素 3.使用filter 和 findIndex 配合 A中過濾的元素是否B中 ~~~ >[danger] ##### filter 和 set 配合 ~~~ // 交集單項 const intersection =(a,b)=>{ const setA = new Set(a) const setB = new Set(b) return [...setA].filter(val=>setB.has(val)) } console.log(intersection([1, 2, 3], [4, 3, 2])) // [2, 3] // 交集對象 const intersectionBy = (a, b, fn) => { const s = new Set(b.map(fn)); return [...new Set(a)].filter(x => s.has(fn(x))); }; console.log( intersectionBy( [{ title: 'Apple' }, { title: 'Orange' }], [{ title: 'Orange' }, { title: 'Melon' }], x => x.title )) // [ { title: 'Orange' } ] ~~~ >[danger] ##### some 和 filter ~~~ const intersectionWith = (a, b, comp) => a.filter(x => b.some(y => comp(x, y))); console.log(intersectionWith( [1, 1.2, 1.5, 3, 0], [1.9, 3, 0, 3.9], (a, b) => Math.round(a) === Math.round(b) )) // [2, 3] ~~~ >[danger] ##### filter 和 findIndex 配合 ~~~ const intersectionWith = (a, b, comp) => a.filter(x => b.findIndex(y => comp(x, y)) !== -1); console.log(intersectionWith([1, 2, 3], [4, 3, 2],(a,b)=>a===b)) // [2, 3] ~~~ >[info] ## 只返回true 和 false 不返回具體內容做兩數組是否有交集 ~~~ 1.如果上面交集結果為空,可以理解為兩個數組沒有任何交集則互相都不包含彼此元素, 現在不用具體元素只需要返回true 或者false,every 方法恰好滿足返回true or false 2.利用some 和 來實現 ~~~ >[danger] ##### 沒有交集返回true 有交集返回false ~~~ const isDisjoint = (a,b)=>{ // a 中的元素是否在b 中 const sA = new Set(a) const sB = new Set(b) return [...sA].every(val=>!sB.has(val)) } const a = [1,2] const b = [3,4] // a 和 b 是否沒交集 let flag = isDisjoint(a,b) // true console.log(flag) ~~~ >[danger] ##### 利用some 和 來實現 ~~~ const {log} =console const includesAny = (arr, values) => values.some(v => arr.includes(v)) log(includesAny([1,2,3,4],[2,9])) // true log(includesAny([1,2,3,4],[8,9])) // false ~~~
                  <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>

                              哎呀哎呀视频在线观看