/codegym.vn/ - 108
Trong ví dụ này, chúng ta sử dụng hàm random() của lớp Math để sinh ra ngẫu nhiên
các giá trị dòng và cột. Sau đó thực hiện phép hoán đổi giá trị của các phần tử ngẫu
nhiên tại vị trí dòng và cột đó.
Sao chép phần tử của mảng
Ví dụ:
1.
let
sourceArray
=
[
2
,
3
,
1
,
5
,
10
];
2.
let
targetArray
=
new
Array
(
sourceArray
.
length
);
3.
for
(
let
i
=
0
;
i
<
sourceArray
.
length
;
i
++)
{
4. targetArray
[
i
]
=
sourceArray
[
i
];
5.
}
Trong ví dụ này, chúng ta tạo một mảng targetArray có độ dài bằng với độ dài của
mảng sourceArray. Sau đó, chúng ta duyệt qua lần lượt từng phần tử của mã
sourceArray và gán giá trị của phần tử đó cho từng phần tử tương ứng của mảng
targetArray.
7. Mã sạch
Quy tắc #1: Không sử dụng mảng quá nhiều chiều
Mảng càng nhiều chiều thì thuật toán để xử lý càng trở nên phức tạp, khó hiểu, khó
kiểm soát. Do đó, cần suy xét rất cẩn thận để hạn chế việc sử dụng mảng quá nhiều
chiều. Chẳng hạn, để duyệt qua một mảng có 3 chiều, thông thường chúng ta sẽ cần
tới 3 vòng lặp lồng nhau, dẫn đến độ phức tạp của thuật toán là rất cao.
Trong những tình huống như vậy, chúng ta có thể áp dụng kỹ thuật làm phẳng (flatten)
để giảm số chiều của mảng.
Quy tắc #2: Không lưu trữ các dữ liệu khác biệt vào trong một mảng
Chúng ta đều biết, mỗi phần tử của mảng được đối xử như một biến độc lập, do đó
chúng có thể chứa bất kỳ một giá trị nào. Chẳng hạn, chúng ta có thể sử dụng một
mảng để lưu tên, tuổi và địa chỉ của khách hàng, thậm chí là có thể lưu luôn mã hoá
đơn, hay danh sách sản phẩm mà khách hàng ấy đã mua.
Như vậy, mảng của chúng ta sẽ có dạng như:
"Joh
n"
"Mad
rid"
20
"A88
21"
"iPho
ne"
2
5/201
9
true
Nhìn vào mảng này, thật khó để có thể hình dung được dữ liệu mà chúng ta đang lưu
trữ là gì. Và cũng thật khó để có thể duyệt và thực hiện các thao tác trên tập dữ liệu
này. Do đó, chúng ta nên tránh sử dụng mảng vào những mục đích tương tự như vậy.
Thay vào đó, chúng ta sử dụng đối tượng để biểu diễn dữ liệu thay cho mảng (Chúng
ta sẽ tìm hiểu về đối tượng ở trong Chương 9).