X (hoặc nếu nĩ là một số nguyên) log (x) Trả về loga t ự nhiên của
112 Chương 4: Tổ chức dữ liệu thành các mảng dịng trước khi text cuộn ra phía phải của màn hình JavaScript hỗ trợ một
dịng trước khi text cuộn ra phía phải của màn hình. JavaScript hỗ trợ một số mã được viết trên một sơ' dịng miễn là chúng được đặt vào đúng các vị trí. JavaScript sẽ bỏ qua các khoảng trống dư thừa và những ký tự dịng mới vì nĩ xem dấu chấm phẩy (;) là sự kết thúc thật sự của câu lệnh.
Các dấu ngoặc vuơng ở mã trước trong m ã trước k h iế n cho Jav a S c rip t hiểu nội dung của nĩ là nội dung của m ột m ảng mớị Điều này tương tự như việc tạo m ột m ảng sử dụng cú pháp phương thức tạo phù hợp.
var months = new Array(“January” , “February”, "March”, “April” , “May” . “J'jno”, “July” , “August",
“September , OctODer”, "November'', “ Decembei” ),
T ấ t cả thuộc tín h và phương thức của đơi tượng A rray cĩ sẵn cho các đơi tượng được tạo sử dụng trực kiện Arraỵ
Gọi các thuộc tính và phương thức của đơì tượng Array
Đơi tượng A rray trong Jav aS crip t chỉ phơi bày b a thuộc tính. Hai trong số những thuộc tín h đĩ chỉ được xác lập khi m ảng được gọi là k ết quả của việc tương hợp mẫu biểu thức thơng thường n h ư được thảo luận trong chương 3. Thuộc tín h length (cĩ sẵn cho tấ t cả m ảng) chỉ là m ột trong ba thuộc tín h cĩ th ể được chỉnh sửa vì nĩ biểu th ị chiều dài hiện h àn h của m ảng. Thuộc tín h index input length • • • • • • • Thủ thuật#
Khơng phải mỗi phần tử trong một mảng phải chứa một giá trị. Bạn cĩ thể tạo dễ dàng một mảng vốn bỏ qua mọi số index thứ hai hoặc bỏ qua một số index
tùy ý.
Thuộc tín h le n g th xem x ét số index rỗng (khơng được sử dụng) trong m ột m ảng cũng như sơ' p h ần tử m à m ột m ảng chứạ Do đĩ nếu bạn bỏ qua m ột sơ" lớn các sơ" index, thuộc tín h lin g th sẽ lớn hơn nhiều so với sơ' p h ần tử.
var employee = new ArrayO; employee[127756] = “Tom Jones”;
Mơ tả
Liên quan đến việc tương hợp mẫu biểu thức thơng thường, chứa iađex của chuỗi con tb'ơiig họp V.CỈ1Ỉ đọc).
Liên quan đến việc tương hợp mẫu biểu thức thơng thường; chứa chuỗi gốc mà việc tương hợp đã được thực hiện trên đĩ (chỉ đọc) Truy tìm hoặc xác lập chiều dài của mảng.
Chương 4: Tổ chức dữ liệu thành các mảng 113 alert(empỉoyeẹìength);
Mã này trả về 127,757 như là chiều dài của m ảng vì đĩ là số phần tử (kể cả các p h ần tử rỗng) từ 0 đến 127,756.
Đối tượng A rray cũng chứa một số phương thức hữu dụng để làm cho việc quản lý nội dung của mảng trỏr nên dễ dàng hơn cho n h à lập trìn h như bạn cĩ th ể th ấy trong bảng 4.1.
Sử dụng các phương thức của danh sách đối tượng A rray trong bảng 4.1 cung cấp m ột số hàm chĩnh sửa nâng cao trê n nội dung của các mảng. Bơn tro n g số các phương thức cho phép bạn xem các m ảng như là một ngăn xếp gọi (call stack) hoặc mĩt hàng đợi (queue *.
Prong lập trìn h m ột call stack tương tự như m ột chồng b án h xếp. B ánh xếp sau càng được thêm vào đáu chồng, là banh xêp đẩu tien được lấy ra (hoặc được ăn). Đơi khi cách sắp xếp này được gọi là phương pháp la st in> first out (LIFO) (vào sau ra trước).
Một queue giống như một hàng tại một ngân h àn g nơi người đầu tiên đ\ vào hàng lr rg!fờ:. đầu t 'é i được phụ: ' Ụ Khơng :ĩ gj ngạc nhií n cách sắp xếp này được gọi là phương pháp first »n, first out (FIFCM (vào truớc ra trước).
Phươ ng th ứ c Mơ tả
p o p ') ' à p .isliù I<ạ t UI f , r s ‘ I ut (i J F G ) , tuơiig tụ n n u n.ột
call stack
shift() và unishifto Frist in, first out (FIFO), tương tự như một queuẹ
Cĩ m ột số phương thức thú vị khác cho phép bạn chuyển đổi một m ảng th à n h một chuỗi, tách các mảng th àn h các m ảng con hoặc thậm chí ghép h ai hoặc nhiều mảng lại với nhaụ
Trong m ã sau đây bạn tạo một số mảng sử dụng class Array,
var MainMenu = new Array(“File”, “Edit”, “View", "Window”, "Help”);
var FileMenu = new Array("New”, “Open", “Close”, “Save”, “Exit”); var EditMenu = new ArrayfUndo", "Repeat”, "Cut”, “Copy”, “Paste”); var ViewMenu = new ArrayfNormar, “Web Layout", “Outline”);
var Window/Menu = new ArrayfNew Window", “Arrange AH”, "Split”); var HelpMenu = new Array(“Contents”, “About”, “Contact Us”);
114 Chương 4: Tổ chức dữ liệu thành các mảng
Bảng 4.1 Các phưđng thức của đfiì tượng Array
Phương thức
concat (arrayl, array2, ...arrayN)
join separator
pop 0
push (elom ertl, element2 elementN)
reverse 0
shift 0
slice (begin, end)
Mơ tả
Nối hai hoặc nhiều mảng thành một mảng đơn
Nối tất cả phần tử của một mảng thành một chuỗi đơn được tách biệt bởi dấu phân tách được biểu thị hoặc một dấu phẩy nếu dấu phân tách khơng được chỉ định.
Trả về phần tử cuối cùng của một mảng và loại bỏ nĩ.
Thêm một hoặr nhiều phần tử vào cuối mơt mảng và trả về chiều dài mới của nĩ.
Đảo ngược thứ tự của các phần tử trong một mảng
Tương tự pop 0, trả về phần tử đầu tiên của một mảng và loại bỏ nĩ.
splice (index, howMany,
Tạo một mảng mới từ phần con của mảng hiện cĩ như dược định nghĩa bởi các index đầu và cuốị
Được sử dụng để thêm hoặc loại bỏ các phần elementl, element2, elementN) tử ra khỏi một mảng.
soft (functionName) Được sử dụng để phân loại các phần tử của một mảng
unishift (eiementl, element2, Tương tự push 0; thêm một hoặc nhiều phần elemexỉtN) tử vào đầu một mảng và trả về diiểiĩ dài mtt
của nĩ.
Những m ảng này tượng trưng cho m ột menu của m ột web site giả thuyết. Bạn cĩ th ể sử dụng một số phương thức của đối tượng A rray trên từng m ảng này để chỉnh sửa nĩ hoặc trích xuất các m ẫu th ơ n g tin .
//Creates a string of all elements of an array // The array itself is unaffected
var MenultemsStr = MainMenụjoin(“ I "); document.write (MenultemsStr + “<br><br>”);
// Creates a new array that contains all elements of all arrays // The existing arrays are all unaffected
var AIIMenultems = MainMenụconcat(FileMenu, EditMenu, ViewMenu, WindowMenu, HelpMenu);
document.write (AIIMenultems.join(“, “) + "<brxbr>”); // Reverses the order of elements in an array
Chương 4: Tổ chức dữ liệu thanh các màng 115 // Modifies the existing array
MainMenụreverseO;
document.write (MainMenụjoinC I “) + “<br><br>");
// Creates a new array that contains a subset of an existing array /' The existing arrays are all unaffected
var Ch'ldMenultems = AỈIMerdltems.áliGeíMainMenụlength); document.write (ChildMenultems.join(‘‘ <font size=+3>lk/font> “)
+ “<br><br>’');
K ết quả từ những xử lý mảng này cĩ th ể được th ấ y trong ản h chụp m àn h ìn h sau đâỵ