es6 一句話數組去重


let arr=['1','a','a','3','1']

let a=Array.from(new Set(arr))

或者這么寫,用擴展運算符(...),擴展運算符內部調用的是數據結構的 Iterator 接口

let a=[...new Set(arr)]

結果a為["1" , "a" , "3"]

 

拓展1:Set 實例

1.Set 結構的實例有以下屬性

  Set.prototype.constructor:構造函數,默認就是Set函數

  Set.prototype.size:返回Set實例的成員總數

 

2.Set 實例的方法分為兩大類:操作方法(用於操作數據)和遍歷方法(用於遍歷成員)

  2.1.下面先介紹四個操作方法

    add(value):添加某個值,返回 Set 結構本身

    delete(value):刪除某個值,返回一個布爾值,表示刪除是否成功

    has(value):返回一個布爾值,表示該值是否為Set的成員

    clear():清除所有成員,沒有返回值

 

  2.2.然后是四個遍歷方法,可以用於遍歷成員

    keys():返回鍵名的遍歷器

    values():返回鍵值的遍歷器

    entries():返回鍵值對的遍歷器

    forEach():使用回調函數遍歷每個成員

 

拓展2:Array.from()

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

       1.只要是部署了 Iterator 接口的數據結構,Array.from都能將其轉為數組。

       2.另一個應用是,將字符串轉為數組,然后返回字符串的長度

  3.Array.from的第一個參數指定了第二個參數運行的次數。這種特性可以讓該方法的用法變得非常靈活

  Array.from({ length: 2 }, () => 'jack')
  // ['jack', 'jack']
 

 

拓展3:擴展運算符(...),的應用

  1.復制數組

  數組是復合的數據類型,直接復制的話,只是復制了指向底層數據結構的指針,而不是克隆一個全新的數組。

  ES5 只能用變通方法來復制數組:

    const a1 = [1, 2];

    const a2 = a1.concat();

  擴展運算符提供了復制數組的簡便寫法:

    const a2 = [...a1];

    或

    const [...a2] = a1;

  2.合並數組

  3.與解構賦值結合, 擴展運算符可以與解構賦值結合起來,用於生成數組

  4.字符串,擴展運算符還可以將字符串轉為真正的數組

  5.實現了 Iterator 接口的對象,任何定義了遍歷器(Iterator)接口的對象(參閱 Iterator 一章),都可以用擴展運算符轉為真正的數組

  6.Map 和 Set 結構,Generator 函數,擴展運算符內部調用的是數據結構的 Iterator 接口,因此只要具有 Iterator 接口的對象,都可以使用擴展運算符,比如 Set 結構。

 

 

本文參考來自:http://es6.ruanyifeng.com/#docs/array

 

 





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM