国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數組中元素去重

e10101 / 2671人閱讀

摘要:目前有以下幾種方法可以實現數組中元素去重遍歷數組一個一個進行比較利用實現,在擴展運算符提供了新的數據結構。它類似于數組,但是成員的值都是唯一的,沒有重復的值。

目前有以下幾種方法可以實現數組arr中元素去重
let arr = [1, 2, 3, 4, 2, 3, 4]

遍歷數組一個一個進行比較

 let arr = [1, 2, 3, 4, 2, 3, 4];
    let newarr = [];
    for(let i of arr){
        if(newarr&&newarr.length == 0){
             newarr.push(i);
        }
        let index = newarr.findIndex((value, index, arr)=>{
             return i===value
         });
         if(index < 0){
             newarr.push(i);
         }
    }
    console.log( newarr);//?[1, 2, 3, 4]
    

利用obj實現,在http://www.cnblogs.com/mmzuo-...

     var array = [1, "1", 1, 2, 3, 2, 4];
     var tmpObj = {};
     var result = [];
     array.forEach(function(a) {
       var key = (typeof a) + a;
       if (!tmpObj[key]) {
         tmpObj[key] = true;
         result.push(a);
       }
     });
     console.log(result);

擴展運算符(...) + set
ES6 提供了新的數據結構 Set。它類似于數組,但是成員的值都是唯一的,沒有重復的值。Set 本身是一個構造函數,用來生成 Set 數據結構。向 Set 加入值的時候,不會發生類型轉換,所以5和"5"是兩個不同的值。Set 內部判斷兩個值是否不同,使用的算法叫做“Same-value-zero equality”,它類似于精確相等運算符(===),主要的區別是NaN等于自身,而精確相等運算符認為NaN不等于自身。

 let newArr = [...new Set(arr)]
 console.log(newArr);//[1, 2, 3, 4]

Array.from() + set
Array.from方法用于將兩類對象轉為真正的數組:類似數組的對象(array-like object)和可遍歷(iterable)的對象(包括 ES6 新增的數據結構 Set 和 Map)

 let newArr = Array.from(new Set(arr))
  console.log(newArr);//[1, 2, 3, 4]

還有很多中未寫在上面,大家可以去
https://github.com/fung-yu/js...
上查看

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97710.html

相關文章

  • 也談面試必備問題之 JavaScript 數組去重

    摘要:而數組元素去重是基于運算符的。而如果有迭代函數,則計算傳入迭代函數后的值,對值去重,調用方法,而該方法的核心就是調用方法,和我們上面說的方法一異曲同工。 Why underscore (覺得這部分眼熟的可以直接跳到下一段了...) 最近開始看 underscore.js 源碼,并將 underscore.js 源碼解讀 放在了我的 2016 計劃中。 閱讀一些著名框架類庫的源碼,就好像...

    Coly 評論0 收藏0
  • 8種常用數組去重方法

    摘要:種常用數組去重第一種兩個循環思路新建一個為空的結果數組外層遍歷原數組,內層循環遍歷返回數組判斷內層循環數組當前元素和外層數組元素的值是否相等,是退出內層循環經過第二部后,此時內層循環數組的索引值和返回數組的長度正好相等,外層數組元素也是唯一 8 種常用數組去重 第一種 【兩個 for 循環】 思路: 新建一個為空的結果數組 外層 for 遍歷原數組,內層循環遍歷返回數組 判斷內層循環...

    vibiu 評論0 收藏0
  • JS數組去重總結

    摘要:數組去重,一般會在面試的時候才會碰到,要求手寫數組去重方法的代碼。在實際項目中碰到的數組去重,一般都是后臺去處理,很少讓前端處理數組去重。數組去重的方法一利用去重中最常用如果不考慮兼容性,這種去重的方法代碼最少。 數組去重,一般會在面試的時候才會碰到,要求手寫數組去重方法的代碼。如果是被提問到,數組去重的方法有哪些?你能答出其中的10種,面試官很有可能對你刮目相看。 在實際項目中碰到的...

    whinc 評論0 收藏0
  • JS專題之數組去重

    摘要:將元素作為對象的鍵,默認鍵對應的值為如果對象中沒有這個鍵,則將這個元素放入結果數組中去。 前言 數組去重在日常開發中的使用頻率還是較高的,也是網上隨便一抓一大把的話題,所以,我寫這篇文章目的在于歸納和總結,既然很多人都在提的數組去重,自己到底了解多少呢。又或者是如果自己在開發中遇到了去重的需求,自己能想到更好的解決方案嗎。 這次我們來理一理怎么做數組去重才能做得最合適,既要考慮兼容性,...

    only_do 評論0 收藏0
  • javascript數組去重

    摘要:數組去重雙層循環使用雙層嵌套循環是最原始的方法用來存儲結果如果是唯一的,那么執行完循環,等于外層循環內層循環當和相等時,跳出循環。否則說明元素唯一,這時成立,將此元素添加到中。它類似于數組,但是成員的值都是唯一的,沒有重復的值。 JavaScript數組去重 雙層循環 使用雙層嵌套循環是最原始的方法: var array = [a,b,a]; function unique(arra...

    qylost 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<