Thêm giá trị khóa vào javascript mảng trống

Nếu bạn có một danh sách các mục [ví dụ: danh sách tên ô tô], việc lưu trữ ô tô trong các biến đơn lẻ có thể trông như thế này

hãy để xe1 = "Saab";
cho car2 = "Volvo";
cho xe3 = "BMW";

Tuy nhiên, nếu bạn muốn đi vòng qua các ô tô và tìm một ô tô cụ thể thì sao?

Giải pháp là một mảng

Một mảng có thể chứa nhiều giá trị dưới một tên duy nhất và bạn có thể truy cập các giá trị bằng cách tham chiếu đến một số chỉ mục

Tạo một mảng

Sử dụng một mảng chữ là cách dễ nhất để tạo một mảng JavaScript

cú pháp

const tên_mảng = [mục1,mục2,. ];

Một thực tế phổ biến là khai báo mảng với từ khóa const

Tìm hiểu thêm về const với mảng trong chương. Mảng JS Const

Dấu cách và ngắt dòng không quan trọng. Một khai báo có thể trải rộng trên nhiều dòng

Bạn cũng có thể tạo một mảng rồi cung cấp các phần tử

Ví dụ

const xe = [];
xe ô tô[0]= "Saab";
xe[1]= "Volvo";
ô tô[2]= "BMW";

Tự mình thử »

Sử dụng Từ khóa JavaScript mới

Ví dụ sau cũng tạo một Array và gán giá trị cho nó

Hai ví dụ trên làm hoàn toàn giống nhau

Không cần sử dụng new Array[]

Để đơn giản, dễ đọc và tốc độ thực thi, hãy sử dụng phương thức ký tự mảng

Truy cập các phần tử mảng

Bạn truy cập một phần tử mảng bằng cách tham khảo số chỉ mục

Ghi chú. Chỉ mục mảng bắt đầu bằng 0

[0] là phần tử đầu tiên. [1] là phần tử thứ hai

Thay đổi một phần tử mảng

Câu lệnh này thay đổi giá trị của phần tử đầu tiên trong cars

Truy cập toàn bộ mảng

Với JavaScript, toàn bộ mảng có thể được truy cập bằng cách tham khảo tên mảng

Ví dụ

const xe = ["Saab", "Volvo", "BMW"];
tài liệu. getElementById["bản trình diễn"]. InternalHTML = ô tô;

Tự mình thử »

Mảng là đối tượng

Mảng là một loại đối tượng đặc biệt. Toán tử typeof trong JavaScript trả về "đối tượng" cho mảng

Tuy nhiên, mảng JavaScript được mô tả tốt nhất là mảng

Mảng sử dụng số để truy cập "phần tử" của nó. Trong ví dụ này, person[0] trả về John

Các đối tượng sử dụng tên để truy cập "thành viên" của nó. Trong ví dụ này, person.firstName trả về John

Các phần tử mảng có thể là đối tượng

Biến JavaScript có thể là đối tượng. Mảng là loại đối tượng đặc biệt

Do đó, bạn có thể có các biến thuộc các loại khác nhau trong cùng một Mảng

Bạn có thể có các đối tượng trong một Mảng. Bạn có thể có các chức năng trong một Mảng. Bạn có thể có các mảng trong một Mảng

Swift cung cấp ba loại bộ sưu tập chính, được gọi là mảng, bộ và từ điển, để lưu trữ bộ sưu tập giá trị. Mảng là tập hợp các giá trị có thứ tự. Bộ là bộ sưu tập không có thứ tự của các giá trị duy nhất. Từ điển là bộ sưu tập không có thứ tự của các liên kết khóa-giá trị

Mảng, bộ và từ điển trong Swift luôn rõ ràng về các loại giá trị và khóa mà chúng có thể lưu trữ. Điều này có nghĩa là bạn không thể chèn sai loại giá trị vào bộ sưu tập do nhầm lẫn. Điều đó cũng có nghĩa là bạn có thể tự tin về loại giá trị mà bạn sẽ truy xuất từ ​​bộ sưu tập

Ghi chú

Các kiểu mảng, tập hợp và từ điển của Swift được triển khai dưới dạng các tập hợp chung. Để biết thêm về các loại và tập hợp chung, hãy xem Thuộc loại chung .

Khả năng thay đổi của Bộ sưu tập

Nếu bạn tạo một mảng, một tập hợp hoặc một từ điển và gán nó cho một biến, thì tập hợp được tạo sẽ có thể thay đổi được. Điều này có nghĩa là bạn có thể thay đổi [hoặc thay đổi] bộ sưu tập sau khi nó được tạo bằng cách thêm, xóa hoặc thay đổi các mục trong bộ sưu tập. Nếu bạn gán một mảng, một tập hợp hoặc một từ điển cho một hằng số, thì tập hợp đó là bất biến và không thể thay đổi kích thước cũng như nội dung của nó

Ghi chú

Đó là cách tốt để tạo các bộ sưu tập không thay đổi trong mọi trường hợp mà bộ sưu tập không cần thay đổi. Làm như vậy giúp bạn dễ dàng suy luận về mã của mình hơn và cho phép trình biên dịch Swift tối ưu hóa hiệu suất của các bộ sưu tập bạn tạo

Mảng

Một mảng lưu trữ các giá trị cùng loại trong một danh sách có thứ tự. Cùng một giá trị có thể xuất hiện nhiều lần trong một mảng ở các vị trí khác nhau

Ghi chú

Loại Array của Swift được kết nối với lớp NSArray của Foundation

Để biết thêm thông tin về cách sử dụng Array với Foundation và Cocoa, xem

Kiểu mảng Cú pháp viết tắt

Loại mảng Swift được viết đầy đủ là Array, trong đó Element là loại giá trị mà mảng được phép lưu trữ. Bạn cũng có thể viết kiểu của một mảng ở dạng viết tắt là [Element]. Mặc dù hai dạng này giống hệt nhau về mặt chức năng, nhưng dạng tốc ký được ưa thích hơn và được sử dụng xuyên suốt hướng dẫn này khi đề cập đến kiểu của một mảng

Tạo một mảng trống

Bạn có thể tạo một mảng trống của một loại nhất định bằng cách sử dụng cú pháp khởi tạo

  1. var someInts . [ Int ] = []
  2. print [ "someInts thuộc loại [Int] với \ [someInts.đếm] mục. " ]
  3. // In "someInts thuộc loại [Int] với 0 mục. "

Lưu ý rằng loại của biến someInts được suy ra là [Int] từ loại của trình khởi tạo

Ngoài ra, nếu ngữ cảnh đã cung cấp thông tin loại, chẳng hạn như đối số hàm hoặc biến hoặc hằng số đã được nhập, bạn có thể tạo một mảng trống với một ký tự mảng trống, được viết là [] [một cặp dấu ngoặc vuông trống]

  1. someInts . chắp thêm [ 3 ]
  2. // someInts bây giờ chứa 1 giá trị kiểu Int
  3. someInts = []
  4. // someInts bây giờ là một mảng rỗng, nhưng vẫn thuộc kiểu [Int]

Tạo một mảng với giá trị mặc định

Loại Array của Swift cũng cung cấp một trình khởi tạo để tạo một mảng có kích thước nhất định với tất cả các giá trị của nó được đặt thành cùng một giá trị mặc định. Bạn truyền cho trình khởi tạo này một giá trị mặc định thuộc loại thích hợp [được gọi là NSArray0]. và số lần giá trị đó được lặp lại trong mảng mới [được gọi là NSArray1]

  1. var threeDoubles = Mảng [ repeating: 0. 0 , đếm . 3 ]
  2. // threeDoubles thuộc loại [Double] và bằng [0. 0, 0. 0, 0. 0]

Tạo một mảng bằng cách thêm hai mảng lại với nhau

Bạn có thể tạo một mảng mới bằng cách cộng hai mảng hiện có với các loại tương thích với nhau bằng toán tử cộng [NSArray2]. Kiểu của mảng mới được suy ra từ kiểu của hai mảng bạn cộng lại với nhau

  1. var anotherThreeDoubles = Mảng [ repeating: 2. 5 , đếm . 3 ]
  2. // otherThreeDoubles thuộc loại [Double] và bằng [2. 5, 2. 5, 2. 5]
  3. var sáu đôi = ba đôi + anotherThreeDoubles
  4. // sixDoubles được suy ra là [Double], và bằng [0. 0, 0. 0, 0. 0, 2. 5, 2. 5, 2. 5]

Creating an Array with an Array Literal

Bạn cũng có thể khởi tạo một mảng bằng một ký tự mảng, đây là cách viết tắt để viết một hoặc nhiều giá trị dưới dạng tập hợp mảng. Một mảng chữ được viết dưới dạng một danh sách các giá trị, được phân tách bằng dấu phẩy, được bao quanh bởi một cặp dấu ngoặc vuông

  1. [ giá trị 1 , giá trị 2 , []
  2. print [ "letters is of type Set \ [letters . đếm] mục. " ]
  3. // Prints "letters is of type Set with 0 items."

Ghi chú

The type of the []5 variable is inferred to be []6, from the type of the initializer

Ngoài ra, nếu ngữ cảnh đã cung cấp thông tin về loại, chẳng hạn như đối số hàm hoặc biến hoặc hằng đã được nhập, bạn có thể tạo tập hợp trống với ký tự mảng trống

  1. letters . insert [ "a" ]
  2. // letters now contains 1 value of type Character
  3. letters = []
  4. // letters is now an empty set, but is still of type Set

Creating a Set with an Array Literal

Bạn cũng có thể khởi tạo một tập hợp với một ký tự mảng, như một cách viết tắt để viết một hoặc nhiều giá trị dưới dạng tập hợp tập hợp

Ví dụ dưới đây tạo một tập hợp có tên là []7 để lưu trữ các giá trị NSArray4

  1. var Thể loại yêu thích . Bộ < Chuỗi > = [ "Rock", "Classical", "Hip hop"]
  2. // favouriteGenres đã được khởi tạo với ba mục ban đầu

Biến []7 được khai báo là “tập hợp các giá trị NSArray4”, được viết là Array1. Bởi vì bộ cụ thể này đã chỉ định một loại giá trị là NSArray4, nên nó chỉ được phép lưu trữ các giá trị NSArray4. Ở đây, bộ []7 được khởi tạo với ba giá trị NSArray4 [Array6, Array7 và Array8], được viết trong một mảng chữ

Ghi chú

Tập hợp []7 được khai báo là một biến [với phần giới thiệu Array4] và không phải là hằng số [với phần giới thiệu Array5] vì các phần tử được thêm và bớt trong các ví dụ bên dưới

Một loại tập hợp không thể được suy ra từ một mảng chữ, vì vậy loại someInts9 phải được khai báo rõ ràng. Tuy nhiên, do suy luận kiểu của Swift, bạn không cần phải viết kiểu của các phần tử của tập hợp nếu bạn đang khởi tạo nó bằng một mảng chữ chứa các giá trị của chỉ một kiểu. Thay vào đó, phần khởi tạo của []7 có thể được viết dưới dạng ngắn hơn

  1. var Thể loại yêu thích . Đặt = [ "Đá" , "Classical", "Hip hop"]

Bởi vì tất cả các giá trị trong mảng ký tự đều cùng loại, Swift có thể suy ra rằng ___5_______1 là loại chính xác để sử dụng cho biến _______13_______7

Truy cập và sửa đổi một tập hợp

Bạn truy cập và sửa đổi một tập hợp thông qua các phương thức và thuộc tính của nó

Để biết số lượng mục trong một tập hợp, hãy kiểm tra thuộc tính chỉ đọc ____________1 của nó

  1. in [ "Tôi có \ [favoriteGenres.đếm] thể loại nhạc yêu thích. " ]
  2. // In ra "Tôi có 3 thể loại nhạc yêu thích. "

Use the Boolean Array4 property as a shortcut for checking whether the NSArray1 property is equal to Array6

  1. if Thể loại yêu thích . isEmpty {
  2. print [ "Về âm nhạc, tôi không kén chọn. " ]
  3. } else {
  4. in [ "Tôi có sở thích âm nhạc cụ thể. " ]
  5. }
  6. // In ra "Tôi có sở thích âm nhạc cụ thể. "

Bạn có thể thêm một mục mới vào một tập hợp bằng cách gọi phương thức NSArray10 của tập hợp

  1. Thể loại yêu thích . insert [ "Jazz" ]
  2. // favouriteGenres hiện có 4 mục

Bạn có thể xóa một mục khỏi một tập hợp bằng cách gọi phương thức NSArray11 của tập hợp, phương thức này sẽ xóa mục nếu đó là thành viên của tập hợp và trả về giá trị đã xóa hoặc trả về NSArray12 nếu tập hợp không chứa nó. Ngoài ra, tất cả các mục trong một bộ có thể được xóa bằng phương pháp NSArray13 của nó

  1. nếu hãy loại bỏThể loại = Thể loại yêu thích.xóa [ "Đá" ] {
  2. in [ " \ [removedGenre]? I'm over it." ]
  3. } else {
  4. print [ "Tôi chưa bao giờ quan tâm nhiều đến điều đó. " ]
  5. }
  6. // In ra "Rock? I'm over it. "

Để kiểm tra xem một bộ có chứa một mục cụ thể hay không, hãy sử dụng phương thức NSArray14

  1. if Thể loại yêu thích . chứa [ "Funk" ] {
  2. print [ "Tôi đứng vững. " ]
  3. } else {
  4. in [ "Ở đây vui quá. " ]
  5. }
  6. // Bản in "Ở đây sôi nổi quá. "

Lặp lại một tập hợp

Bạn có thể lặp lại các giá trị trong một tập hợp với vòng lặp someInts3-someInts4

  1. dành cho thể loại trong Thể loại yêu thích {
  2. in [ " \ [genre]"]
  3. }
  4. // cổ điển
  5. // Nhạc Jazz
  6. // Hiphop

For more about the someInts3-someInts4 loop, see

Loại someInts9 của Swift không có thứ tự xác định. Để lặp lại các giá trị của một tập hợp theo một thứ tự cụ thể, hãy sử dụng phương thức NSArray20, phương thức này trả về các phần tử của tập hợp dưới dạng một mảng được sắp xếp bằng toán tử NSArray21

  1. dành cho thể loại trong Thể loại yêu thích . đã sắp xếp [] {
  2. in [ " \ [genre]"]
  3. }
  4. // cổ điển
  5. // Hiphop
  6. // Nhạc Jazz

Thực hiện Set Operations

Bạn có thể thực hiện hiệu quả các thao tác tập hợp cơ bản, chẳng hạn như kết hợp hai tập hợp với nhau, xác định giá trị chung của hai tập hợp hoặc xác định xem hai tập hợp có chứa tất cả, một số hoặc không có giá trị nào giống nhau hay không

Hoạt động tập hợp cơ bản

Hình minh họa bên dưới mô tả hai tập hợp—[Int]4 và [Int]5—với kết quả của các phép toán tập hợp khác nhau được biểu thị bằng các vùng được tô bóng

  • Sử dụng phương pháp NSArray24 để tạo một tập hợp mới chỉ có các giá trị chung cho cả hai tập hợp

  • Sử dụng phương pháp NSArray25 để tạo một tập hợp mới với các giá trị trong một trong hai tập hợp, nhưng không phải cả hai

  • Sử dụng phương pháp NSArray26 để tạo một tập hợp mới với tất cả các giá trị trong cả hai tập hợp

  • Sử dụng phương pháp NSArray27 để tạo một tập hợp mới với các giá trị không có trong tập hợp đã chỉ định

  1. hãy số lẻ . Đặt = [ 1 , 3, 5, 7, 9]
  2. hãy chữ số chẵn . Đặt = [ 0 , 2, 4, 6, 8]
  3. let singleDigitPrimeNumbers . Đặt = [ 2 , 3, 5, 7]
  4. chữ số lẻ . công đoàn [ Chẵn Chữ số ]. đã sắp xếp []
  5. // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  6. chữ số lẻ . giao lộ [ chữ số chẵn ]. đã sắp xếp []
  7. // []
  8. chữ số lẻ . trừ [ singleDigitPrimeNumbers ]. đã sắp xếp []
  9. // [1, 9]
  10. chữ số lẻ . sự khác biệt đối xứng [ singleDigitPrimeNumbers ]. đã sắp xếp []
  11. // [1, 2, 9]

Đặt tư cách thành viên và bình đẳng

Hình minh họa bên dưới mô tả ba tập hợp—[Int]4, [Int]5 và NSArray30—với các vùng chồng chéo đại diện cho các phần tử được chia sẻ giữa các tập hợp. Tập hợp [Int]4 là tập hợp siêu của tập hợp [Int]5, bởi vì [Int]4 chứa tất cả các phần tử trong tập hợp [Int]5. Ngược lại, tập hợp [Int]5 là tập hợp con của tập hợp [Int]4, bởi vì tất cả các phần tử trong [Int]5 cũng được chứa bởi [Int]4. Tập hợp [Int]5 và tập hợp NSArray30 không liên quan với nhau vì chúng không có phần tử chung nào

  • Sử dụng toán tử “bằng nhau” [_______6_______41] để xác định xem hai tập hợp có chứa tất cả các giá trị giống nhau hay không

  • Sử dụng phương pháp NSArray42 để xác định xem tất cả các giá trị của một tập hợp có nằm trong tập hợp đã chỉ định hay không

  • Sử dụng phương pháp NSArray43 để xác định xem một tập hợp có chứa tất cả các giá trị trong một tập hợp đã chỉ định hay không

  • Sử dụng các phương pháp NSArray44 hoặc NSArray45 để xác định xem một tập hợp là tập con hay tập siêu, nhưng không bằng, một tập xác định

  • Sử dụng phương pháp NSArray46 để xác định xem hai tập hợp không có giá trị chung

  1. hãy gia súc . Đặt = [ "🐶" , "🐱"]
  2. hãy trang trạiĐộng vật . Đặt = [ "🐮" , "🐔", "🐑", "🐶", "🐱"]
  3. hãy động vật trong thành phố . Đặt = [ "🐦" , "🐭"]
  4. động vật trong nhà . isSubset [ of . động vật nông trại ]
  5. // ĐÚNG VẬY
  6. trang trạiĐộng vật . isSuperset [ of . động vật trong nhà ]
  7. // ĐÚNG VẬY
  8. trang trạiĐộng vật . isDisjoint [ with . động vật thành phố ]
  9. // ĐÚNG VẬY

từ điển

Một từ điển lưu trữ các liên kết giữa các khóa cùng loại và các giá trị cùng loại trong một bộ sưu tập không có thứ tự xác định. Mỗi giá trị được liên kết với một khóa duy nhất, hoạt động như một mã định danh cho giá trị đó trong từ điển. Unlike items in an array, items in a dictionary don’t have a specified order. Bạn sử dụng từ điển khi cần tra cứu các giá trị dựa trên mã định danh của chúng, giống như cách mà từ điển trong thế giới thực được sử dụng để tra cứu định nghĩa cho một từ cụ thể

Ghi chú

Loại NSArray47 của Swift được kết nối với lớp NSArray48 của Foundation

Để biết thêm thông tin về cách sử dụng NSArray47 với Kem nền và Ca cao, hãy xem

Loại từ điển Cú pháp tốc ký

The type of a Swift dictionary is written in full as NSArray50, where NSArray51 is the type of value that can be used as a dictionary key, and NSArray52 is the type of value that the dictionary stores for those keys

Ghi chú

Loại từ điển NSArray51 phải tuân theo giao thức []0, giống như loại giá trị của một tập hợp

Bạn cũng có thể viết loại từ điển ở dạng tốc ký là NSArray55. Mặc dù hai dạng này giống hệt nhau về mặt chức năng, nhưng dạng tốc ký được ưa thích hơn và được sử dụng xuyên suốt hướng dẫn này khi đề cập đến loại từ điển

Tạo một từ điển trống

Như với mảng, bạn có thể tạo một NSArray47 trống của một loại nhất định bằng cách sử dụng cú pháp bộ khởi tạo

  1. var namesOfIntegers . [ Int . Chuỗi ] = [. ]
  2. // nameOfIntegers trống [Int. String] dictionary

Ví dụ này tạo một từ điển trống loại NSArray57 để lưu trữ các tên giá trị số nguyên mà con người có thể đọc được. Các khóa của nó thuộc loại [Int]2 và các giá trị của nó thuộc loại NSArray4

Nếu ngữ cảnh đã cung cấp thông tin loại, bạn có thể tạo một từ điển trống với một từ điển trống, được viết là NSArray60 [dấu hai chấm bên trong một cặp dấu ngoặc vuông]

  1. namesOfIntegers [ 16 ] = "sixteen"

Chủ Đề