Array陣列 - Method

閱讀時間約 4 分鐘
arr = ["a", "b", "c", "D", "E", "F"]
p arr[2..4] #印出陣列中第三順位至第五順位,並組成陣列
p arr[2, 3] #取出陣列裡第三順位起算的三個物件,組成陣列
p arr[2..-4]
p arr.at(-2) #印出指定順位之物件
p arr.take(3) #取出以第一筆為首指定數量之物件並組成陣列
p arr.drop(1) #去掉前n個物件後,組成陣列
p arr.empty?  #陣列是否空
p arr.include?("D") #陣列中是否包含某物件
p arr.sample(2) #從陣列中隨機回傳兩個物件
p arr.shuffle #回傳一個重新隨機排列的陣列
p arr.sort #將數字陣列按大小順序排列

增加系列
arr.push([78, 24, 33]) #放一個物件到陣列最後面
arr << 100 #放一個物件到陣列最後面
p arr.insert(3, "ELLY") #於指定順位放入特定物件
p arr.unshift("9") #插一個物件到陣列第一序位

減少系列
p arr.pop #移除最後一個物件並回傳,此時arr就少了它
p arr.shift #移除第一個物件並回傳,此時arr就少了它
p arr.delete_at(3)  #移除指定序位的物件
p arr.delete("b") #移除指定物件,並全部刪除
arr = [1, 2, 7, nil, 4, 4, 0]
p arr.compact #將陣列中的nil值移除
p arr.uniq #將陣列中重複的物件移除

.Combination
arr = [1, 3, 9, 7, 2]
arr.combination(3) { |x| p x} 
#從頭按順序挑出三個物件排成一個陣列的所有可能陣列
#參數為0,則輸出[]
#參數若為負數或超出範圍,則不會丟入BLOCK裡

.intersection 及 &
#可將多個陣列共同擁有的物件取出後組成一個新陣列
=begin
arr = [1, 2, 3, 4, 5] 
Ar = [5, 3, 1, 7, 9]
x = ["a", "E", 5, "Box", "sis"]
y = ["E", "sis", "a"]
z = [1, 5, "E", "Box", 2]
p arr & Ar
p x & y
p x & y & z
p arr.intersection(Ar)
=end 

.length  .count  .size
#計算陣列中的物件有多少個
arr = [0, "a", :XD, [1, 3, 5],7]
p arr.size

陣列 * n 會產生一組n份的陣列
arr = [0, "BOY", "下雨", :weather]
p arr * 3

陣列們彼此相加
x = ["a", 1, 5, "耶"]
y = ["C", "a", 1]
p x + y

會破壞原陣列的選擇
arr = [ 1, 2, 3, 4, 5, 6, 7, 8, 9]
p arr.delete_if { |a| a < 3 } #接下來的指令所用的陣列就會改變成這個
p arr.keep_if { |a| a < 7 } #此執行的陣列為上面留下來的陣列

.rotate
#讓陣列以引數+1的序位為首依序排列
arr = [ 1, 11, 4, 3, 16, 0]
p arr.rotate(0)  =>  [ 1, 11, 4, 3, 16, 0]
p arr.rotate(1)  => [ 11, 4, 3, 16, 0, 1]
p arr.rotate(2)  => [ 4, 3, 16, 0, 1, 11]

.split(//) 
#可以把一個字串拆解成字元字串
num = 12345    
arr = num.to_s.to_split(//) 
p arr  =>  ["1", "2", "3", "4", "5"]
avatar-img
1會員
13內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
題目敘述 Combination Sum II_Leetcode #40 給定一個整數陣列candidates 和 目標值target。 每個陣列元素只能選擇一次,請問有多少種組合方法,可以使得組合數總和 = target? 請把滿足組合數總和 = target的組合方法以陣列的形式返回答案
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
題目敘述 Intersection of Two Arrays II 給定兩個輸入陣列,請找出兩個陣列交集的元素,並且依照出現次數輸出。 測試範例 Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2] 交集元素
Thumbnail
題目敘述 Subarray Sums Divisible by K 給定一個整數陣列,請計算有幾個區間和能夠整除k的連續區間? 測試範例 Input: nums = [4,5,0,-2,-3,1], k = 5 Output: 7
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給我們一個輸入整數陣列arr,和一個初始化的刪除次數k? 我們可以任意選擇從arr中刪除k個陣列元素,請問最後留下來的數字,最少會有幾個不同的數字? 註: 最後不同的數字越少越好。 題目的原文敘述 測試範例 Example 1: Input: arr = [5,5
Thumbnail
題目敘述 題目給定我們一個輸入陣列nums 要求我們以正、負交叉排列的方式重組陣列,並且必須保持原本的相對順序。 並且以陣列的形式輸出返回答案。 例[5, 1, -2, -3] 重排後為 [5, -2, 1, -3] 題目的原文敘述 測試範例 Example 1: Input:
Thumbnail
題目敘述 題目會給定一個陣列nums 和 給定的k值,要求我們找出陣列裡第k大的元素。 題目的原文敘述 測試範例 Example 1: Input: nums = [3,2,1,5,6,4], k = 2 Output: 5 第二大的元素為5​ Example 2: Input:
Thumbnail
題目敘述 題目會給我們一個輸入陣列nums,和一個指定的k值。 請問,在輸入陣列nums中,有幾個子陣列的元素總合恰好為k ? 例如: nums = [1,2,3], k = 3 則有兩個子陣列的元素總合為3,分別是[1,2] 和 [3] 如果是第一次聽到或接觸前綴和prefix的同學
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
題目敘述 Combination Sum II_Leetcode #40 給定一個整數陣列candidates 和 目標值target。 每個陣列元素只能選擇一次,請問有多少種組合方法,可以使得組合數總和 = target? 請把滿足組合數總和 = target的組合方法以陣列的形式返回答案
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
題目敘述 Intersection of Two Arrays II 給定兩個輸入陣列,請找出兩個陣列交集的元素,並且依照出現次數輸出。 測試範例 Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2,2] 交集元素
Thumbnail
題目敘述 Subarray Sums Divisible by K 給定一個整數陣列,請計算有幾個區間和能夠整除k的連續區間? 測試範例 Input: nums = [4,5,0,-2,-3,1], k = 5 Output: 7
Thumbnail
分享在網路上看到的陣列題目。通常 for...of 的 value 是陣列中的每個值,那如果我們在迭代中對陣列操作會發生什麼事? 題目來源:https://x.com/_jayphelps/status/1774640511158022335?s=20
Thumbnail
題目敘述 題目會給定我們兩個整數陣列作為輸入nums1, nums2,要求我們找出兩個陣列的差異值。 找出在nums1但是不在nums2的元素,以陣列的形式放在answer[0]輸出。 找出在nums2但是不在nums1的元素,以陣列的形式放在answer[1]輸出。 題目的原文敘述
Thumbnail
題目敘述 題目會給我們一個輸入整數陣列arr,和一個初始化的刪除次數k? 我們可以任意選擇從arr中刪除k個陣列元素,請問最後留下來的數字,最少會有幾個不同的數字? 註: 最後不同的數字越少越好。 題目的原文敘述 測試範例 Example 1: Input: arr = [5,5
Thumbnail
題目敘述 題目給定我們一個輸入陣列nums 要求我們以正、負交叉排列的方式重組陣列,並且必須保持原本的相對順序。 並且以陣列的形式輸出返回答案。 例[5, 1, -2, -3] 重排後為 [5, -2, 1, -3] 題目的原文敘述 測試範例 Example 1: Input:
Thumbnail
題目敘述 題目會給定一個陣列nums 和 給定的k值,要求我們找出陣列裡第k大的元素。 題目的原文敘述 測試範例 Example 1: Input: nums = [3,2,1,5,6,4], k = 2 Output: 5 第二大的元素為5​ Example 2: Input:
Thumbnail
題目敘述 題目會給我們一個輸入陣列nums,和一個指定的k值。 請問,在輸入陣列nums中,有幾個子陣列的元素總合恰好為k ? 例如: nums = [1,2,3], k = 3 則有兩個子陣列的元素總合為3,分別是[1,2] 和 [3] 如果是第一次聽到或接觸前綴和prefix的同學