Máy tínhLập trình

JavaScript mảng và sáng tạo của nó. Tất cả về mảng JavaScript

Trong bài viết này, chúng tôi sẽ xem xét JavaScript mảng, thành phần của nó. JavaScript là một kịch bản theo định hướng ngôn ngữ hoàn hảo được thiết kế để lập trình. Trong thực tế, nó thực hiện các ngôn ngữ ECMAScript (tiêu chuẩn ECMA-262).

JavaScript? Nó được sử dụng như một ngôn ngữ nhúng nhằm xác định đường dẫn của chương trình để áp dụng chủ đề. Nó có thể được tìm thấy trong các trình duyệt: nó được sử dụng đó như một ngôn ngữ kịch bản cung cấp cho các trang web tương tác.

Các tính năng kiến trúc chủ yếu của sản phẩm này là năng động và yếu đánh máy, bộ nhớ lý tưởng chức năng lập trình avtoupravlenie mà là đối tượng của việc xả đầu tiên.

Trên thực tế, trong JavaScript ảnh hưởng lý do khác nhau, vì sự phát triển sẽ tạo ra một ngôn ngữ tương tự như Java, nhưng dễ sử dụng bởi các lập trình viên. Bằng cách này, ngôn ngữ JavaScript không sở hữu bất kỳ công ty hay tổ chức mà làm cho nó khác biệt so với một số các phong cách lập trình được sử dụng bởi các nhà phát triển web.

Cần lưu ý rằng JavaScript - một nhãn hiệu đã đăng ký của Công ty Cổ phần Tập đoàn Oracle.

một mảng là gì?

Gọi là mảng kiểu dữ liệu, mà các cửa hàng giá trị đánh số. Mỗi giá trị như vậy được gọi là các thành phần mảng và các chữ số từ đó liên kết với các thành phần, được gọi là một chỉ mục. JavaScript mảng của untyped. Điều này có nghĩa rằng các bộ phận rắn có thể có bất cứ loại, với các bộ phận khác nhau thuộc cùng một mảng, có loại hoàn toàn khác nhau.

Bên cạnh đó, JavaScript mảng là năng động, và người ta nói rằng kích thước cố định không cần phải được công bố. Sau khi thêm bộ phận mới bất cứ lúc nào.

sản xuất rắn

Sử dụng ngôn ngữ JavaScript để tạo một mảng khá khó khăn. Có hai phương pháp cho việc này. Là người đầu tiên liên quan đến việc sản xuất của một mảng sử dụng một chữ - dấu ngoặc vuông, bên trong được đặt một danh sách các mục, chia bằng dấu phẩy.

  • var trống = []; // mảng trống rỗng;
  • var numers = [4, 1, 2, 5]; // mảng với năm thành phần kỹ thuật số;
  • var diff = [1.5, sai sự thật, «text"]; // mảng với ba yếu tố của các loại khác nhau.

Như một quy luật, nó không phải là cần thiết để được giá trị đơn giản (hàng và số). Nó cũng có thể là bất kỳ biểu thức khác, ví dụ, literals đối tượng, chức năng và các mảng khác.

Cách thứ hai để tạo ra một nhà thiết kế mảng là để gọi Array (). Để mời ông đến một trong ba phương pháp:

  • Gọi một nhà thiết kế không có đối số: var b - Mảng mới (). Nó cung cấp cho việc tạo ra một mảng tương đương trống để một đen rỗng [].
  • Các nhà thiết kế đã xác định một cách rõ ràng n giá trị của các thành phần mảng: var b = Array mới (1, 3, 5, 8, "chuyền sản xuất», true). Trong trường hợp này, nhà thiết kế trình bày một danh sách các đối số, mà được chuyển thành một thành phần mảng mới. Đối số được ghi vào mảng là vị trí nơi chỉ định.
  • Xác định phạm vi cho thêm giá trị giao. Này được thực hiện bằng cách xác định các mảng phát hiện một số trong dấu ngoặc đơn: var b = new Array (5). Phương pháp này phát hiện liên quan đến mảng phân bổ khoản tiền bắt buộc của các thành phần (mỗi trong số đó được liệt kê như không xác định) với khả năng gán giá trị trong bài trình bày. Hình thức này thường được sử dụng để phân bổ trước Javascript mảng có chiều dài được biết trước.

Ghi âm, đọc và thêm thông tin chi tiết của mảng

Nhận các thành phần của mảng có thể qua operator []. Bằng cách này, tất cả các thành phần trong JavaScript, bắt đầu từ số không, được đánh số. Để có được những yếu tố cần thiết, chỉ số của nó trong dấu ngoặc vuông. Theo nguyên tắc chung, các mục có thể được thay đổi. Một JavaScript để thêm vào mảng, nó là đủ để gán một giá trị mới.

Cần lưu ý rằng trong JavaScript mảng có thể lưu trữ bất kỳ số lượng các yếu tố của bất cứ loại nào.

Chiều dài của mảng

Vì vậy, chúng ta đều biết những gì JavaScript. chiều dài của mảng nói chung là một hiện tượng thú vị. Chúng ta hãy xem xét nó một cách chi tiết hơn. Tất cả các dãy được xây dựng sử dụng mảng thiết kế () và phát hiện thông qua một mảng đen có một tài sản dài cụ thể, mà rút tổng số yếu tố tối thiếu. Kể từ mảng thể không chắc chắn của các chi tiết (undefined Các định), một biểu thức chính xác hơn âm thanh như vậy: chiều dài Chất lượng luôn lớn bởi một so với số lượng lớn nhất (index) của các thành phần mảng. chiều dài Chất lượng được điều chỉnh tự động, ở chính xác ở sự xuất hiện của một loạt các chi tiết mới.

Để hiển thị các thành phần cuối cùng của một mảng, bạn có thể sử dụng các tài sản dài.

Phần cuối cùng là chỉ số một nhỏ hơn kích thước của mảng. Sau khi đếm ngược bắt đầu luôn từ đầu. Oh, JavaScript này! Chiều dài của mảng phụ thuộc vào số lượng chính xác của các yếu tố. Do đó, nếu bạn không biết có bao nhiêu cần có, nhưng bạn cần phải chuyển sang các yếu tố cuối cùng của mảng, nó là cần thiết để áp dụng các kỷ lục: v.length - 1.

Lặp lại các mảng của các bộ phận

Rất thường xuyên, các tài sản dài được sử dụng để lặp qua mảng của các bộ phận trong chu trình:

  • var trái cây = [ «dâu", "đào", "quả táo", "chuối"];
  • for (var i = 0; i
  • document.write (trái cây [i] + «...»).

Trong ví dụ này có vẻ như các thành phần được sắp xếp liên tục và bắt đầu với phần đầu tiên, giữ chỉ số zero. Nếu đây không phải là trường hợp, trước khi gọi mỗi phần tử của mảng phải được kiểm tra nếu nó được định nghĩa.

Chu kỳ cũng đôi khi được dùng để khởi tạo các thành phần.

Sự gia tăng và mảng cắt ngắn

Tôi tự hỏi như thế nào sử dụng ngôn ngữ chuỗi JavaScript vào một mảng để thêm? Trong quá trình làm việc với mảng, chiều dài chiều dài tự động cải thiện chất lượng, đó là lý do tại sao chúng ta phải chăm sóc nó cho mình. Nó là cần thiết để nhớ lại một chi tiết duy nhất - sở hữu chiều dài là không có sẵn cho read-only, nhưng đối với các bản ghi. Nếu giá trị thuộc tính chiều dài chất lượng mang đến cho kích thước của hiện tại, mảng được giảm đến một giá trị xác định trước. Bất kỳ thành phần mà không nằm trong dòng sản phẩm mới của các chỉ số, ngả, và giá trị của họ bị mất, ngay cả nếu sau đó bạn trở về chiều dài - giá trị không được phục hồi.

Rất đơn giản xóa các mảng như: foo.length = 0.

Nếu chất lượng của chạy chiều dài lớn hơn giá trị hiện tại của nó, ở phần cuối của mảng sẽ là mới mẻ, linh kiện không xác định, mà sẽ tăng nó đến kích thước mong muốn.

Xóa một loạt các chi tiết

Các nhà điều hành xóa chỉ ra các thành phần của mảng để xác định, nhưng nó vẫn tiếp tục tồn tại trong trường hợp này. Nếu bạn muốn loại bỏ các yếu tố JavaScript của mảng sao cho phần còn lại chuyển đến nơi trống, bạn cần phải sử dụng một trong những cách để dự đoán mảng. Phương pháp Array.shift () loại bỏ một thành phần đầu tiên, pop () - chấm dứt thành phần và mối nối () phương pháp - một trong những thành phần hoặc dao động ở bất cứ đâu mảng.

mảng đa chiều

Dường như chúng ta hiểu một chút, những gì JavaScript. mảng hai chiều - mà cần phải được xem xét tiếp. Bạn hãy nhớ rằng mảng JavaScript có thể chứa các thành phần của các mặt hàng khác? Tính năng này được sử dụng cho việc sản xuất các mảng đa chiều. Để truy cập vào các thành phần trong một mảng của mảng là đủ để áp dụng các dấu ngoặc hai lần.

mảng kết hợp

Bây giờ chúng ta tìm hiểu làm thế nào để thương hiệu sử dụng JavaScript mảng kết hợp. Để làm điều này chúng ta cần phải nhìn vào lý thuyết: các mảng kết hợp đôi khi được gọi là bảng băm. Nhờ có họ, thay vì các hàng chỉ số được áp dụng. Việc sử dụng các cấu trúc như vậy gợi nhớ về việc sử dụng tên của các thuộc tính của một đối tượng đơn giản, nhưng trong phương án này, việc thực hiện các công việc trong một định dạng mảng. Vì không có cách thao tác Javascript mảng kết hợp, chúng được sử dụng ít hơn nhiều thường xuyên hơn bình thường. Cần lưu ý rằng họ vẫn có thể hữu ích cho việc lưu trữ dữ liệu và đơn giản hóa lưu trữ các bộ phận, mà sẽ được truy cập.

mảng đầu ra

Và bây giờ chúng ta sẽ nghiên cứu trong hệ thống JavaScript? mảng đầu ra hộp thoại (trên màn hình), cũng như các giá trị đầu ra của các thành phần mảng.

Nếu chương trình bạn muốn hiển thị các giá trị của tất cả các thành phần, sau đó nó là thuận tiện để áp dụng các hướng dẫn. Điều thú vị là, các quy tắc biến toa cho sử dụng tại cùng thời điểm với các thành phần của chỉ số mảng.

làm sạch

Để lọc một mảng JavaScript, bạn cần phải thiết lập lại chiều dài của nó:

  • var myArray = [1, 2, 5, 23];
  • myArray.length = 0.

Sau đây cho thấy việc thực hiện các điểm đến rõ ràng (), trong một khuôn khổ, JavaScript Prototype:

  • rõ ràng: function () {;
  • this.length = 0;
  • trở lại đây;
  • }.

Thêm và xóa các thành phần

Vâng, chúng tôi tiếp tục khám phá thêm ngôn ngữ JavaScript thú vị này. phần tử mảng càng tốt và để loại bỏ và thêm cách tương tự như tính truyền thống của các đối tượng khác. Nhưng có một số khác biệt: thêm số thuộc tính chiều dài chất lượng có thể thay đổi, nhưng trong việc sửa đổi các chiều dài thuộc tính có thể được loại bỏ chất lượng số. Về nguyên tắc, khi cài đặt thuật toán trong các mảng như sau:

  • Khi thêm một thuộc tính không rõ kỹ thuật số của tôi, nếu chiều dài bằng hoặc ít hơn tôi, chiều dài được xác định là i + 1.
  • Khi bạn thay đổi chất lượng của chiều dài để thực hiện các bước sau: nếu giá trị giao là nhỏ hơn không, sau đó ném RangeError. Loại bỏ tất cả các chỉ số chất lượng số đó là tương đương với chiều dài mới và lớn hơn.

Trên thực tế loại bỏ phần tử mảng JavaScript rất đơn giản. Sau khi tất cả, thậm chí thiết lập độ dài, bạn cần phải loại bỏ "thêm" các thành phần từ nó. Nó sau từ mảng tùy chọn làm sạch này. Nếu biến được gán một mảng trống mới, vì lý do gì, không hài lòng, và nó là cần thiết để thiết lập lại hiện nay, chất lượng của nó là đủ dài để gán một giá trị bằng không.

phương pháp unshift, thay đổi, pop và push

Mặc dù thực tế rằng các thành phần của mảng được thay đổi bằng tay, nhiều khuyên bạn nên sử dụng tích hợp trong các phương pháp này. Đó là sắc thái này đảm bảo giá trị đúng đắn về chất lượng và thiếu chiều dài trong đèo mảng. Bằng cách này, chất lượng của chiều dài chính xác sẽ tương ứng với số lượng thành phần.

Quá trình di chuyển để đẩy hết các mục mảng truyền đi. Pop lại quá trình cung cấp cho các thành phần thức và loại bỏ nó.

Nói chung trong Internet Explorer dưới phiên bản thứ tám unshift có thể trở lại không xác định, trong các trình duyệt khác - giá trị mới của thời gian. Vì vậy mà giá trị trả về từ unshift tốt hơn không hy vọng.

Việc bổ sung và loại bỏ các phần ở giữa của mảng

Nếu bạn muốn xóa một mảng JavaScript, bạn cần phải thực hiện? Được biết, phương pháp này có một Array.prototype.splice chữ ký mối nối.

Ông rút khỏi các thành phần mảng deleteCount, bắt đầu với chỉ số bắt đầu. Nếu bạn vượt qua hơn hai đối số, tất cả các đối số tiếp theo trong mảng được sắp xếp ở vị trí của thanh. Nếu bắt đầu là âm, chỉ số mà tại đó để tiếp tục rút sẽ bằng chiều dài + bắt đầu. Quay trở lại với mảng của các yếu tố từ xa diễn ra.

Trong thực tế, sử dụng phương pháp hàn, nó có thể loại bỏ các thành phần từ giữa một mảng hoặc thêm bất kỳ số bất cứ nơi nào trong mảng.

Trong sự hiện đơn giản nhất, nếu nó là cần thiết để loại bỏ các thành phần với chỉ số i, mảng cần yêu cầu phương pháp nối với các thông số i và 1.

Về nguyên tắc, tùy chọn thứ hai ở phương pháp hàn là không bắt buộc, nhưng hành vi của các chức năng với một đối số cho mỗi trình duyệt là khác nhau.

Ví dụ, trong Firefox, Opera trong các biến thể cuối cùng, tất cả các chi tiết trước khi kết thúc của mảng sẽ được gỡ bỏ trong Safari và Chrome.

không có thành phần duy nhất được loại bỏ trong IE. Sự thay đổi đầu tiên là không thể dự đoán hành vi của Opera - sẽ được gỡ bỏ một mục với chỉ số bắt đầu - 1. Do đó nó luôn luôn là cần thiết trong phương pháp này để truyền ít nhất hai thành phần.

các phím

Tất nhiên, học JavaScript, mảng kết hợp, như đã đề cập trước đó, bạn cũng không nên bỏ qua. Đây là một cái nhìn trừu tượng của các thông tin (giao diện để lưu trữ dữ liệu), cho phép lưu một cặp dạng "(key, value)" và các hoạt động thêm một cặp hỗ trợ, cũng như xóa và tìm kiếm các cặp khóa:

- FIND (key).

- INSERT (giá trị, chìa khóa).

- Hủy bỏ (key).

Người ta tin rằng trong một mảng kết hợp không thể để cứu hai cặp với các phím tương tự. Trong một vài k + câu là giá trị gắn liền với khóa k. Semantics và ở đây với các hoạt động nêu trên trong việc triển khai khác nhau của các mảng như vậy có thể khác nhau.

Như vậy, hoạt động FIND (key) trả về một giá trị gắn liền với một phím nào đó, hoặc một undef đối tượng cụ thể, có nghĩa là giá trị gắn liền với một phím nào đó, ngoại tuyến. Hai hành động khác không trở lại (trừ trường hợp dữ liệu về việc liệu cuộc phẫu thuật đã thành công).

Nói chung, về mặt giao diện, mảng kết hợp đó được coi như là một mảng đơn giản, trong đó là chỉ số có thể được áp dụng không chỉ các số nguyên nhưng các loại khác và các giá trị - ví dụ, đường dây.

Ngẫu nhiên, hỗ trợ cho các mảng như được điều trị có rất nhiều ngôn ngữ lập trình cấp cao như PHP, Perl, Ruby, Python, Tcl, JavaScript và những người khác. Đối với các ngôn ngữ mà không có công cụ tích hợp để làm việc với mảng kết hợp, tạo ra một số lượng khổng lồ ngộ theo hình thức thư viện.

Một ví dụ về một mảng kết hợp có thể đóng vai trò như một danh bạ điện thoại. Trong phương án này, giá trị được thiết lập "F. IO + e", và chìa khóa - số điện thoại. Một số điện thoại là một trong những bậc thầy, nhưng một người có thể sở hữu nhiều số.

mở rộng liên quan

Cần lưu ý rằng các phần mở rộng nổi tiếng nhất bao gồm:

  • MỖI - «đi bộ trên tất cả» tiết kiệm cặp.
  • CLEAR - để xóa tất cả các mục.
  • MIN - để tìm một cặp với giá trị then chốt thấp nhất.
  • MAX - để tìm một cặp với giá trị quan trọng lớn nhất.

Trong hai trường hợp cuối cùng bạn cần trên các phím chỉ hiệu lực thi hành so sánh.

Thực hiện các mảng kết hợp

Có rất nhiều hiện thực khác nhau của mảng kết hợp. Việc thực hiện phổ biến nhất có thể dựa trên một mảng đơn giản mà thành phần là các cặp (key value). Đẩy nhanh tiến độ các chức năng tìm kiếm, bạn có thể sắp xếp các thành phần của mảng bởi một phát hiện quan trọng và thực hiện sử dụng tìm kiếm nhị phân. Nhưng nó sẽ làm tăng số lượng thời gian cần thiết để thêm một cặp mới, như sẽ cần phải "đẩy" các thành phần mảng đã xuất hiện trong một ô trống để đóng gói một kỷ lục mới.

Việc thực hiện nổi tiếng nhất, dựa trên cây tìm kiếm khác nhau. Ví dụ, trong một phòng đọc sách STL bản đồ đặc trưng ngôn ngữ C ++ moóc được thực hiện trên cơ sở màu đen và gỗ gụ. Trong Ruby, phong cách, Tcl, Python sử dụng một loại bảng băm. Có thực hiện khác.

Nói chung, mỗi thực hiện có lợi thế và nhược điểm riêng của nó. Điều quan trọng là cả ba hoạt động được thực hiện trên trung bình, và trong giai đoạn tồi tệ nhất của sắc thái về (log n), trong đó n - số lượng hiện tại để lưu mệnh. Đối với cây tìm kiếm phối hợp (bao gồm cả cây đen và đỏ), điều kiện này được thỏa mãn.

Được biết, trong việc triển khai dựa trên bảng băm, thời gian trung bình được định nghĩa là D (1), mà là tốt hơn so với các hành động dựa trên những cái cây tìm kiếm. Tất nhiên, điều này không đảm bảo một hiệu suất tốc độ cao hoạt động riêng biệt: Thời gian hành động INSERT trong trường hợp xấu nhất, ký hiệu là O (n). quá trình INSERT được thực hiện trong một thời gian dài khi tỷ lệ thi hành công vụ đạt điểm cao nhất, và có nhu cầu xây dựng lại các chỉ số bảng băm.

Bằng cách này, các báo cáo băm xấu mà trên cơ sở đó nó là không thể thực hiện hành động bổ sung nhanh chóng MAX, MIN, và một thuật toán để tìm kiếm tất cả tiết kiệm cặp thứ tự giảm dần hay tăng dần phím.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 vi.atomiyme.com. Theme powered by WordPress.