1. 程式人生 > >擴充套件運算子(...)的用途

擴充套件運算子(...)的用途

1.合併陣列

一直以來,有很多方法合併陣列,但是擴充套件運算子給了我們全新的方法去實現合併陣列:

arr1.push(...arr2) // 把arr2合併到arr1的後面
arr1.unshift(...arr2) //把arr2合併到arr1的前面

如果你想在陣列內合併陣列,你可以像下面這樣做:

var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];

2.複製陣列

複製陣列是我們常常要做的工作,在過去,我們會使用Array.prototype.slice去實現,但現在我們可以使用擴充套件運算子去得到一個複製後的陣列:

var arr = [1,2,3];
var arr2 = [...arr]; // 就像 arr.slice()
arr2.push(4)

3.結構賦值

結構賦值是一個十分有趣的實踐,我在自己的React專案中大量的使用了這種技巧。你可以使用擴充套件運算子配合其他運算子一起,從變數中提取有用的資訊,就像這樣:

let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }

相關推薦

擴充套件運算子...用途

1.合併陣列 一直以來,有很多方法合併陣列,但是擴充套件運算子給了我們全新的方法去實現合併陣列: arr1.push(...arr2) // 把arr2合併到arr1的後面 arr1.unshift(...arr2) //把arr2合併到arr1的前面 如果你想在陣列內

ES6擴充套件運算子...

在使用vuex的過程中,經常會碰到以下寫法: ...mapGetters('user',['classList','class','subjectList','termList']) 在不瞭解E

關於擴充套件運算子...

開發十年,就只剩下這套架構體系了! >>>   

記錄一下ES6擴充套件運算子三點運算子...的用法

該記錄源於segmentfaul網友的評論,特意感謝!  ...運算子用於運算元組,有兩種層面 1. 第一個叫做 展開運算子(spread operator),作用是和字面意思一樣,就是把東西展開。可以用在array和object上都行。 比如: let a = [1,2,

異或運算子^

關於異或運算(^),談談自己淺顯的認識: 0異或任何非零數n結果為n,n^n=0。 交換律:a ^ b = b ^ a, 結合律:a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c, d = a ^ b ^ c 可以推出 a = d ^ b ^ c, 自反性:a ^

es6之擴充套件運算子 三個點...

es6之擴充套件運算子 三個點(…) 物件的擴充套件運算子 理解物件的擴充套件運算子其實很簡單,只要記住一句話就可以: 物件中的擴充套件運算子(...)用於取出引數物件中的所有可遍歷屬性,拷貝到當前物件之中 let bar = { a: 1, b: 2 }

ES6躬行記2——擴充套件運算子和剩餘引數

  擴充套件運算子(Spread Operator)和剩餘引數(Rest Parameter)的寫法相同,都是在變數或字面量之前加三個點(...),並且只能用於包含Symbol.iterator屬性的可迭代物件(iterable)。雖然兩者之間有諸多類似,但它們的功能和應用場景卻完全不同。擴充套件運算子能把整

es6 擴充套件運算子三個點...的用法及總結

不明白的: 1.0 apply() 2.0 合併陣列的幾種方法(Array.prototype.push.apply(arr1,arr2))//不理解 3.0 Iterator 介面的物件 4.0 Map 和 Set 結構, Generator 函式 1.0 含義 擴充

ES6—陣列的擴充套件操作擴充套件運算子

一:擴充套件運算子 1:含義 擴充套件運算子(spread)是三個點(...)。它好比 rest 引數的逆運算,將一個陣列轉為用逗號分隔的引數序列。擴充套件運算子內部呼叫的是資料結構的 Iterator 介面 console.log(1, ...[2, 3, 4], 5)

ES2015/ES6 擴充套件運算子 三個點...

1  含義 擴充套件運算子( spread )是三個點(...)。它好比 rest 引數的逆運算,將一個數組轉為用逗號分隔的引數序列。 console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5)

從零開始學_JavaScript_系列41——物件的擴充套件4擴充套件運算子三個點...

0、一句話總結 屬性名,以及是屬性的函式的簡潔寫法,寫起來簡單易閱讀 屬性名可以用變數字串拼接起來(話說以前也有吧?) 函式都有name屬性,但set和get也要加字首 Object.is判斷兩個變數是否相等 Obje

三種方法打印 main函數的返回地址的值old EIP(用途,你懂得!)

popu tex 空間 ext 指向 多說 ret 運行 自己 這裏能夠簡單的改動隨意函數的返回地址。能夠做到自己定義EIP的指向,就可以運行當前進程空間的隨意指令,這裏僅僅是讓大家更清楚棧幀結構,沒有涉及跨進程的inline HOOK 等,後面會陸續講下讀取隨意進程

MongoDB聚合單一用途的聚合方法

con ron 數據 列表 訂單 == 參數 for fun 轉自:http://blog.csdn.net/congcong68/article/details/51419231 聚合指各種可以處理批量記錄並返回計算結果的操作,並MongoDB提供了豐富的聚合操作,M

c語言的指標和指標運算子* and &

c語言的中指標和指標運算子(* and &) c語言的指標 什麼是指標? 指標就是存放變數地址的 指標有什麼用? 訪問變數地址 指標在c語言學習中的地位是什麼? 如果你要寫出好

WordCount的基本功能及擴充套件功能兩人組隊完成

合作者:201631062118,201631062217 專案gitee連結:https://gitee.com/suiran90/wc/ (注:由於gitee操作不熟練,此次我們兩人程式碼上傳時出現問題,商議為由我上傳,相關操作正在學習) 本次作業連結地址:https://edu.cnblogs.com/

Libgdx Developer's Guide(Libgdx開發者手冊)-9一個簡單的遊戲2--擴充套件示例遊戲

這篇文章的目的是擴充套件我們上次建立的遊戲"Drop"。我們要新增一個選單頁面和一對功能來讓遊戲更有趣一些。 讓我們從向遊戲中引入幾個高階類開始。 Screens 介面 Screens 對於多元件的遊戲非常重要。Screens包含了許多在ApplicationListener中所用的

java基礎第九篇 條件運算子三元運算子

條件運算子( ? : )也稱為 “三元運算子”。 語法形式:布林表示式 ? 表示式1 :表示式2 運算過程:如果布林表示式的值為 true ,則返回 表示式1 的值,否則返回 表示式2 的值 例子如下: packa

java二進位制數原碼補碼反碼,運算子&、非~、或|、異或^及位運算總結

    看過博主另一篇文章--Java集合--HashMap,對裡面使用的運算子及位運算不是很清楚的童鞋可以看下這篇文章,對理解hashMao原始碼很有幫助,自己也可以在程式中寫寫,逼格絕對滿分!!!      大家都知道一個位元組是8個二進位制

作用域運算子 “::”C++學習筆記 10

  通常情況下,如果有兩個同名變數,一個是全域性的,另一個是區域性的,那麼區域性變數在其作用域內具有較高的優先權,它將遮蔽全域性變數。   如果希望在區域性變數的作用域內使用同名的全域性變數,可以在該變數前加上“::”,此時::avar代表全域性變數,“::”稱為作用域運算子。 例1: 全域

C++類和物件.四個預設成員函式賦值運算子過載

1.(1)類的定義   類就是具有相同資料和相同操作的一組物件的集合。 學生類定義: class student {//成員變數char* name;int age;int sex;//成員函式void speak(){cout<<name<<"年