<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.去重用更直白的話翻譯'過濾出新數組每一項都是唯一' 或者"記錄保存第一次出現的位置",這個思路下具備的方法有 1.1.利用雙重for循環 遍歷數組中的每一項,將當前項與后一項相比較(除去最后一項),遇到相同 的就刪除,便返回了一個沒有重復的數組 1.2.利用for循環 配合數組'includes' 或'indexOf'方法去重和'reduce' 解決思路類似 1.3.通過'filter ' 方法配合'indexOf' 特性獲取當前值在數組中第一次出現的位置和當前位置比較 2.找到一種'數據結構',其結構要具備只能是唯一不能重復 2.1.利用對象屬性不能重復的特性去去重,利用對象唯一key 的特性 利用對象做key 問題是如果數字和字符串相同 key最后都轉換成字符串導致出現bug 2.2.解決辦法使用Map 來解決 3.利用數組的sort方法先排序在去重(相鄰元素對比法) 4.利用現成的api 'Set' 來解決問題 ~~~ * 小說明 ~~~ 1.findIndex對象key查找的時候如果key不存在相當于undefined和undefined 比較 返回第一項會產生歧義 let arr1 = [ {key:'1',name:'q'},{key:'2',name:'q'},{key:'1',name:'a'} ] console.log( arr1.findIndex(val=>val.id === undefined)); // 0 ~~~ >[danger] ##### 雙層for循環 ~~~ const arr = ['123',564,'123', '564', 'haoha', '1', '1', '1'] const unique = (ls) =>{ for(let i=0;i<ls.length;i++){ let item = ls[i] for(let j=i+1;j<ls.length;j++){ if(item===ls[j]) { console.log(item); ls.splice(j,1) j-- // 數組少一位循環相對減少 } } } return ls } console.log(unique(arr)) ~~~ >[danger] ##### filter 和 index 配合 ~~~ const arr = ['123',564,'123', '564', 'haoha', '1', '1', '1'] // indexOf 版本 const unique = (ls)=>ls.filter ((val,index)=>{ return (ls.indexOf(val)===index) }) console.log(unique(arr)); // 數組對象使用findIndex let arr1 = [ {key:'1',name:'q'},{key:'2',name:'q'},{key:'1',name:'a'} ] const unique2 =(ls,fn)=> ls.filter((value,index)=>{ return ls.findIndex(val=>fn(val,value))===index }) console.log(unique2(arr1,(val,curr)=>val.key===curr.key)) ~~~ >[danger] ##### reduce 和index 配合'indexOf' ~~~ const arr = ['123',564,'123', '564', 'haoha', '1', '1', '1'] // includes 版本 const unique = (ls)=>ls.reduce((acc,curr)=>{ if(!acc.includes(curr)) acc.push(curr) return acc },[]) console.log(unique(arr)); // indexof 版本 const unique1 = (ls)=>ls.reduce((acc,curr,index)=>{ if(ls.indexOf(curr)===index)acc.push(curr) return acc },[]) console.log(unique1(arr)); // 數組對象使用findIndex let arr1 = [ {key:'1',name:'q'},{key:'2',name:'q'},{key:'1',name:'a'} ] const unique2 =(ls,fn)=> ls.reduce((acc,curr,index)=>{ if(ls.findIndex(val=>fn(val,curr))===index)acc.push(curr) return acc },[]) console.log(unique2(arr1,(val,curr)=>val.key===curr.key)) ~~~ >[danger] ##### 利用對象做第三方中介 ~~~ // 利用對象唯一key 的特性 利用對象做key 問題是如果數字和字符串相同最后key是字符串出錯如下 const arr = ['123',564,'123', '564', 'haoha', '1', '1', '1'] const unique = (ls)=>Object.keys(ls.reduce((acc,curr)=>{ if(!(curr in acc)) acc[curr] = curr return acc },{})) console.log(unique(arr)); // [ '1', '123', '564', 'haoha' ] // 利用對象唯一key 的特性 使用map 來解決 const arr = ['123',564,'123', '564', 'haoha', '1', '1', '1'] const unique = (ls)=>{ const map = ls.reduce((acc,curr)=>{ if(!acc.has(curr)) acc.set(curr,curr); return acc },new Map()).values() return [...map] } console.log(unique(arr)); // [ '123', 564, '564', 'haoha', '1' ] // map 對象形式 let arr1 = [ {key:'1',name:'q'},{key:'2',name:'q'},{key:'1',name:'a'} ] const unique2 =(ls,key)=>{ const map = ls.reduce((acc,curr)=>{ if(!acc.has(curr[key])) acc.set(curr[key],curr) return acc },new Map()).values() return [...map] } console.log(unique2(arr1,'key')) ~~~ >[danger] ##### 利用sort排序在和相鄰元素比較 ~~~ function uniq(array){ array.sort(); var temp=[array[0]]; for(var i = 1; i < array.length; i++){ // 當值和存入值最后一項是否相等相等則重復 if( array[i] !== temp[temp.length-1]){ temp.push(array[i]); } } return temp; } var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5]; console.log(uniq(aa)); ~~~ >[danger] ##### 利用set ~~~ var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5]; console.log([...new Set(aa)]); ~~~
                  <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>

                              哎呀哎呀视频在线观看