Giới thiệu về 2D Array – mảng 2 chiều trong JavaScript
Ma trận sẽ tiến hành xmỗi khi bạn nhập vào dòng cột dữ liệu.dụ:
nếu bạn muốn hiển thị dữ liệu trên từng dòng với mỗi m và từng cột với mỗi
tháng, hoặc khi bạn thực hiện quá trình to o cáo tài chính cho công ty, tchức,
doanh nghiệp... thì việc sử dụng matrix là 1 giải pháp cùng hợp lý, tương ứng
với tình hình kinh doanh hiệu suất của từng phòng, ban ngành... hoặc đem so
sánh với mức chỉ tiêu chung của toàn công ty.
Các bạn hãy liên tưởng tới 1 chiếc bàn c, 8 dòng (được đánh dấu từ 0 > 7), 8
cột (cũng đánh dấu t 0 > 7). Nếu muốn kiểm tra vị trí chính xác của ô phía trên
góc trái thì hãy truy cập chessboard[0][0], ô tiếp theo sẽ là vị trí [0][1], và tiếp tục
thay thế giá trị của x thành [0][7] để đi hết 1 cạnh từ trái sang phải của bàn cờ.
Tương tự như vậy, thay đổi giá trị y nếu muốn di chuyển từ trên xuống dưới,
d [6][1]ô th 2 của cột thứ 7.
hiệu chúng tôi đang sử dụng đây khá phù hợp với những biến
trong JavaScript: [y][x], tất cả các mảng đều bắt đầu từ 0, do vậy có thể hiểu m
na v dạng câu hỏi: “Khoảng ch bao nhiêu tính tphía trái” hoặc “vị trí 0” sẽ
chính xác là tọa độ đầu tiên từ bên trái.
Một trong những quy ước chung được sử dụng rộng rãi khi áp dụng với ma trận là
dùng chung biến x và y, dx luôn luôn là chsố cột (khoảng ch, vtrí tính từ
bên trái), y ch sổ dòng (khoảng cách từ trên xuống). Do vậy, tọa
độ y,x tương ứng với [0][0] thành phần đầu tiên góc trên bên trái, [0][1]
thành phần thứ 2 tiếp theo từ trên xuống, còn [1][n]dòng thứ 2....
JavaScript và 2D Array:
Nhưng trên thực tế, JavaScript lại không hỗ trợ 2D Array. cách thường sử
dụng để xử dữ liệu trong mảng 2 chiều là tạo đối tượng Array, bao gm nhiều
đối tượng Array bên trong.
Sử dụng mng 1 chiều tương tự như mảng 2 chiều:
Trong nhiều trường hợp thực tế, chúng ta thể dễ dàng ép” mảng 1 chiều vào
trong mảng 2 chiều bàng cách sdụng toán tử lập trình logic. Ví dụ: chúng ta có 1
chuỗi các ký tự như sau:
var sData= "abcdefghijABCDEFGHIJäß©ÐëØ>½îÿ";
Tại đây, chúng ta có thể dễ dàng thấy 1 mô hình đơn giản, với 3 chuỗi liên tiếp của
10 ký tự, tương ứng với đó là ma trận 10 x 3:
// column: 0123456789
var sData= "abcdefghij" // row 0 (starts at offset 0)
+"ABCDEFGHIJ" // row 1 (starts at offset 10)
+"äß©ÐëØ>½îÿ" // row 2 (starts at offset 20)
Mỗi dòng tại đây sẽ chứa 10 cột, chúng ta có thể dễ dàng tính toán và xác định vị
trí đầu tiên của bất kỳ dòng nào bằng cách nhân số dòng với 10.ng thức tổng
quát tại đây sẽ có dạng:
(y * row_length) + x
với ysố dòng, x là số cột, row_length là scột trong mỗi dòng.
Với dữ liệu như ví dụ trên, chúng ta có thdựng cấu trúc mảng 2 chiều như sau:
// assumes data is a string, sData and rows have 10 columns
function GetCellValue(y,x) {
nRowStart= y*10;
nOffset = nRowStart+ x;
sElementValue= sData.substr(nOffset,1); // access one element
return( sElementValue );
}
....
// y,x (row, column)
alert( GetCellValue(0,0) ); // displays a
alert( GetCellValue(0,1) ); // displays b
alert( GetCellValue(0,2) ); // displays c
alert( GetCellValue(1,2) ); // displays C
alert( GetCellValue(2,2) ); // displays ©
alert( GetCellValue(0,9) ); // displays j
alert( GetCellValue(1,9) ); // displays J
alert( GetCellValue(2,9) ); // displays ÿ
Sau đó, chúng ta đã th truy cập chuỗi dữ liệu tương tự như mảng 2 chiều với
từng tự riêng biệt. Và tiếp tục như vậy, chúng ta hoàn toàn làm được việc ép
cấu trúc mảng 2 chiều vào mảng 1 chiều bằng cách gán thêm chức năng truy cập
d liệu đặc biệt. Nhưng đây cũng không phải là cách m ph biến
trong JavaScript.
Sử dụng mng của mảng:
Trên thực tế, cách sử dụng thường xuyên mảng 2 chiều trong JavaScript tạo
mảng 1 chiều, sau đó gán từng đối tượng bên trong đó với 1 mảng 1 chiều khác.
Nếu đi vào việc phân tích cụ thể, chức năng dưới đây là 1 trong những cách đơn
giản để tạo và cđịnh mảng 2 chiều