[Ruby] 陣列(Array)
## 陣列疊代
Array.each{|element|}
Array.collect{|element|}
Array.map{|element|}
Array.select{|element|} # 選出回傳為 true 的 element
Array.reject{|element|} # 刪掉回傳為 true 的 element
Array.each.with_index{|element, index|}
Array.all?{|element|} # 如果陣列裡面沒東西也會回傳 true
Array.any?{|element|}
## 陣列取用
Array.slice([start], [length])
## 添加元素
Array.push([element])
Array.insert([index], [element])
Array.unshift([element]) # 添加在最前面
## 其他
Array.flatten # 拆成一維陣列
Array.uniq # 移除陣列中相同的值
[*'A'..'Z'] # 產生 A...Z 的陣列
foo, bar = ['a', 'b'] # 陣列的解構賦值
# Rails 方法
Array.blank?
Array.present?
Array @ Ruby-doc
陣列建立
######################################
## 建立陣列 ##
######################################
# Array.new constructor
arr = Array.new() # []
arr = Array.new([repeat], [item])
# Array literal notation
arr = [ ] # []
# 建立帶值陣列
arr = Array.new(3,"Hello") # ["Hello","Hello","Hello"]
arr = [*1..52] # [1, 2, 3, ..., 51, 52]
arr = ["milk", "is", "good"] # ["milk","is","good"]
arr = %w(milk is good) # 如果陣列的元素都是字串,可以使用 %w ,回傳["milk", "is", "good"]
arr = %W(#{food} is good) # 大寫的 %W 可以 inteporated
# 建立帶有 symbol 的陣列
arr = %i(jan feb mar apr may jun jul aug sep oct nov dec) # [:jan, :feb, :mar, :apr, :may, :jun, :jul, :aug, :sep, :oct, :nov, :dec]
陣列取用
######################################
## 陣列取用 ##
######################################
# 提取陣列元素(不會改變原本的 arr)
arr = ["milk", "bread", "egg"]
arr[0] # 根據索引值,["milk"]
arr[-1] # 根據索引值,["egg"]
arr[0..2] # 根據索引值,["milk", "bread", "egg"]
arr.at(1) # 根據索引值,["bread"]
arr.fetch(100, "what") # 根據索引值,如果無該元素,則以第二個參數為預設值,["what"]
arr.first # 提取第一個,["milk"]
arr.last # 提取最後一個,["egg"]
arr.drop(2) # 刪除前兩個陣列元素後再提取,["egg"]
arr.slice(1,2) # 從第 i 個元素開始取 j 個元素,["bread","egg"]