Mảng Trong Ruby

Kiến thức lập trình ứng dụng, Website, PHP,  Java, HTML, CSS Trang chủ Lập trình Ruby cơ bản § 1 Cài đặt Ruby, hello world § 2 Biến, hằng, kiểu dữ liệu § 3 Toán tử số học + - * / § 4 Chuỗi và nhập dữ liệu § 5 Boolean, So sánh, Logic § 6 if, case, dải dữ liệu § 7 Vòng lặp: while, for, do, until, break, next § 8 Mảng § 9 Hash, Symbol, Iterator § 10 Phương thức (hàm) § 11 Lớp trong Ruby § 12 Tính kế thừa § 13 Module, Mixin, Namespacing § 14 Struct, OStruct § 15 Proc, Lambda § 16 File
  • Lập trình PHP
    • PSR
    • Laminas
    • SPL
    • Xenforo
    • Zend Framework
  • Lập trình ứng dụng iOS - Swift
  • Ruby
    • Sketchup
  • Lập trình Dart - Flutter
  • Lập trình C# (C Sharp)
    • Lập trình C# Cơ bản
  • Server
    • MySql Server
    • Windows
    • Apache
    • PHP
  • HTML
  • Javascript
    • JQuery
    • TypeScript - Angular
  • CSS
    • Sử dụng SASS / SCSS
    • Bootstrap - CSS Framework
  • SQL
    • SQL Server ( .NET Framework - C#)
    • MS Access
  • Java
    • Android Java
  • Thuật ngữ - Các vấn đề cơ bản
  • Tools
    • Git và GitHub
    • Kubernetes
    • Mathematica
    • SSH - Secure Shell
    • Grunt
    • Elasticsearch
    • Docker
    • macOS
    • English Study
  • Tin tức công nghệ
  • Tri thức & Khoa học
    • Yoga
  • Ruby
Vòng lặp: while, for, do, until, break, next (Bài trước) (Bài tiếp) Hash, Symbol, Iterator Mảng trong Ruby

Khai báo và sử dụng mảng, các phép toán trên mảng, duyệt qua các phần tử mảng trong ngôn ngữ lập trình Ruby

  • Mảng trong Ruby
  • Kiểu phần tử, thêm bớt phần tử mảng
  • Lấy ra nhiều phần tử mảng
  • Kết hợp mảng
  • Các phương thức trong mảng
  • Duyệt qua các phần tử mảng
  • Mảng nhiều chiều

Mảng trong Ruby

Mảng là một danh sách các phần tử, khai báo mảng dùng ký hiệu [] rồi liệt kê bên trong nó giá trị các phần tử, mỗi phần tử cách nhau bởi dấu ,

# mảng các số numbers = [1,3,5,7] # mảng tên names = ["Nam", "Minh", "Long", "Viet"]

Mỗi phần tử trong mảng có một chỉ số, phần tử đầu tiên chỉ số là 0, để truy cập (đọc/gán) một phần tử dùng kỹ hiệu [chỉ-số]

names = ["Hùng", "Hà", "Dân"] puts names[2] # Đọc phần tử chỉ số 2 của mảng names names[2] = "Nguyễn Văn Dân" # Gán phần tử thứ hai một giá trị mới puts names[2] # Đọc phần tử chỉ số 2 của mảng names # In ra: # Dân # Nguyễn Văn Dân

Trong Ruby có thể dùng chỉ số âm, -1 là phần tử cuối của mảng, -2 là trước phần tử cuối ...

Kiểu phần tử trong mảng, thêm bớt phần tử mảng

  • Các phần tử trong mảng có thể có kiểu dữ liệu bất kỳ, phần tử này một kiểu phần tử kia có thể là kiểu khác. mang=[1, 1.2, "Abc"]
  • Để thêm phần tử mới vào mảng, nối vào cuối dùng toán tử << mang << 10 # thêm một phần tử cuối, có giá trị 10

    Có thể thay toán tử << bằng phương thức push

    mang.push(10) # thêm một phần tử cuối, có giá trị 10
  • Để chèn phần tử vào vị trí có index cụ thể dùng phương thức insert mang.insert(0,100) # chèn vào vị trí đầu tiên phần tử có giá trị 100
  • Để xóa phần tử cuối dùng phương thức pop, xóa một phần tử ở index cụ thể dùng phương thức delete_at arr = [1,2,"A", "B"] a = arr.pop # xóa phần tử cuối, đồng thời lưu lại vào a b = arr.delete_at(1) # xóa phần tử chỉ số 1, đồng thời lưu lại vào b puts arr

Lấy ra nhiều phần tử mảng

Có thể dùng dải dữ liệu mô tả chỉ số để trích xuất ra mảng con có các phần tử tương ứng với chỉ số đó

arr = [1,3,5,7,9,11] subarr = arr[1..4] puts subarr.inspect # In ra # [3, 5, 7, 9]

Kết hợp mảng

Có thể kết hợp hai mảng thành một mảng

a = [1, 2, 3, 4] b = [4, 5] c = a + b print c.inspect # [1, 2, 3, 4, 4, 5]

Có thể thực hiện phép hiệu hai tập hợp

a = [1, 2, 3, 4] b = [4, 5, 7] c = a - b # c gồm các phần tử thuộc a nhưng không thuộc b, a - b là khác b - a puts c.inspect # [1, 2, 3]

Có thể tạo mảng mới bằng cách copy số phần nhiều lần với phép *

a = [1,2,3] puts (a * 3).inspect # [1, 2, 3, 1, 2, 3, 1, 2, 3]

Phép toán giao hai mảng &

Toán tử & lấy giao hai mảng, các phần tử có cả ở hai mảng

a = [2, 3, 7, 8] b = [2, 7, 9] print a & b # [2, 7]

Phép toán hợp hai mảng |

Toán tử | lấy hợp của hai mảng, gồm tất cả các phần tử có trong hai mảng, các phần tử trùng nhau giữ lại 1

a = [2, 3, 7, 8] b = [2, 7, 9] print a | b # [2, 3, 7, 8, 9]

Đảo thứ tự mảng

Có thể tạo ra mảng mới mà các phần tử có chỉ số đảo ngược so với mảng gốc bằng phương thức reverse

arr = [1, 2, 3] puts arr.reverse.inspect # [3,2,1]

Có thể dùng phương thức reverse! để đảo ngược bản thân mảng gốc

Các phương thức trong mảng

Phương thức Diễn giải
array.length Trả về số lượng phần tử trong mảng
array.sort Trả về mảng mới có sắp xếp
array.uniq Trả về mảng mới các phần tử trùng nhau giữ lại một
array.uniq! Phần tử trùng nhau giữ lại một
array.freeze Ngăn cản sửa đổi mảng
array.include?(obj) Trả về true nếu có phần tử với giá trị obj
array.max Trả về phần tử lớn nhất
array.min Trả về phần tử nhỏ nhất

Duyệt các phần tử mảng

Duyệt qua các phần tử mảng bằng lệnh for

arr = [3,5,6,78] for x in arr puts "Giá trị: #{x}" end

Duyệt qua các phần tử bằng phương thức each

a = [ "a", "b", "c" ] a.each { |x| # định nghĩa biến lưu phần tử mảng khi duyệt qua print x, " -- " }

Duyệt qua mỗi phần tử của mảng và thực hiện khối lệnh {} cho mỗi phần tử mảng đó, giá trị phần tử mảng lưu ở biến định nghĩa trong ký hiệu |biến| xuất hiện đầu khối.

Duyệt qua các chỉ số phần tử bằng phương thức each_index

a = [ "a", "b", "c" ] a.each_index { |index| puts "phần tử #{index} có giá trị #{a[index]}" } # phần tử 0 có giá trị a # phần tử 1 có giá trị b # phần tử 2 có giá trị c

Mảng nhiều chiều - mảng trong mảng

Mỗi phần tử trong mảng có thể là đối tượng bất kỳ, có nghĩa là có thể là một mảng con. Bảng cách khai báo mảng chứa các phần tử cũng là mảng sẽ hình thành lên mảng nhiều chiều.

Ví dụ mảng trong mảng

a = [[1,2,3], [4,5,6]] puts a[1][2] # Truy vấn vào mảng con thứ hai, lấy phần tử thứ ba của mảng con này # 6 Mục lục bài viết Mảng trong RubyKiểu phần tử, thêm bớt phần tử mảngLấy ra nhiều phần tử mảngKết hợp mảngCác phương thức trong mảngDuyệt qua các phần tử mảngMảng nhiều chiều ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mới Làm việc với file trong Ruby Proc và Lambda trong Ruby Struct OStruct và lớp Math Time trong Ruby Module Mixin Namespace trong lập trình Ruby Tính kế thừa và đóng gói trong Ruby Các vòng lặp while until for do trong Ruby Cấu trúc rẽ nhánh if unless case trong Ruby Kiểu Boolean toán tử so sánh toán tử logic Chuỗi ký tự và nhập dữ liệu trong Ruby Các toán tử số học trong ruby Vòng lặp: while, for, do, until, break, next (Bài trước) (Bài tiếp) Hash, Symbol, Iterator Giới thiệuPrivacyTừ điển Anh - ViệtChạy SQLRegExpCubic-bezierUnix timestampKý tự HTMLcalories, chỉ số BMRchỉ số khối cơ thể BMITạo QR CodeLịch vạn niên Liên hệ RSS

Đây là blog cá nhân, tôi ghi chép và chia sẻ những gì tôi học được ở đây về kiến thức lập trình PHP, Java, JavaScript, Android, C# ... và các kiến thức công nghệ khác Developed by XuanThuLab

DMCA.com Protection Status

Từ khóa » Duyệt Mảng