CoffeeScript攻略4.4:使用陣列交換變數
問題
你想通過陣列來交換變數。
方案
使用CoffeeScript的解構賦值語法:
a = 1
b = 3
[a, b] = [b, a]
a
# => 3
b
# => 1
討論
解構賦值可以不依賴臨時變數實現變數值的交換。
這種語法特別適合在遍歷陣列的時候只想迭代最短陣列的情況:
ray1 = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
ray2 = [ 5, 9, 14, 20 ]
intersection = (a, b) ->
[a, b] = [b, a] if a.length > b.length
value for value in a when value in b
intersection ray1, ray2
# => [ 5, 9 ]
intersection ray2, ray1
# => [ 5, 9 ]
相關文章
- CoffeeScript攻略4.9:篩選陣列陣列
- CoffeeScript攻略4.8:歸納陣列陣列
- CoffeeScript攻略4.7:對映陣列陣列
- CoffeeScript攻略4.10:反轉陣列陣列
- CoffeeScript攻略4.1:從陣列生成字串陣列字串
- CoffeeScript攻略4.6:打亂陣列元素陣列
- CoffeeScript攻略2.4:建立類變數變數
- CoffeeScript攻略4.3:取得陣列最大值陣列
- CoffeeScript攻略4.5:定義陣列範圍陣列
- GO語言————4.4 變數Go變數
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- CoffeeScript攻略1.1:嵌入JavaScriptJavaScript
- CoffeeScript攻略1.3:for迴圈
- CoffeeScript攻略3.7:拆分字串字串
- CoffeeScript攻略3.9:匹配字串字串
- 不使用臨時變數交換兩個變數的值變數
- JavaScript兩個變數交換值(不使用臨時變數)JavaScript變數
- JavaScript2:變數、陣列、字串JavaScript變數陣列字串
- CoffeeScript攻略3.8:字串插值字串
- CoffeeScript攻略3.1:重複字串字串
- 交換兩個變數變數
- 陣列--移除陣列中指定的元素,不改變原陣列和改變原陣列陣列
- 如何不使用臨時變數,交換兩個變數的值。變數
- js不使用第三個變數交換兩個變數的值JS變數
- CoffeeScript攻略3.4:查詢子字串字串
- CoffeeScript攻略1.2:比較範圍
- CoffeeScript攻略2.5:鏈式呼叫物件物件
- 數值變數交換常用方法變數
- 在COM中使用陣列引數-陣列指標 (轉)陣列指標
- 1.11 JavaScript2:變數、陣列、字串JavaScript變數陣列字串
- Proc中使用char陣列、VARCHAR陣列和char變數進行DELETE操作具體行數的細微區別陣列變數delete
- 交換兩個整型變數變數
- CoffeeScript攻略3.10:生成唯一ID
- CoffeeScript攻略2.1:克隆物件(深複製)物件
- 不用第三個變數,交換變數的值變數
- Java 陣列的不同定義方式和陣列長度為可變引數Java陣列
- systemtap 探祕(三)- 型別、變數和陣列型別變數陣列
- 原生js 判斷變數是一個陣列JS變數陣列