Chuỗi JavaScript thành giá trị khóa đối tượng

Một đối tượng trong JavaScript là một tập hợp các cặp khóa-giá trị không theo thứ tự (key: value). Mỗi khóa được gọi là một thuộc tính và là một chuỗi đại diện cho tên thuộc tính. Nếu một khóa không phải là chuỗi được cung cấp làm khóa, thì biểu diễn chuỗi hóa của nó sẽ được sử dụng. Giá trị của thuộc tính có thể thuộc bất kỳ loại dữ liệu nào phù hợp với thuộc tính về mặt khái niệm - một chuỗi, một số, một mảng hoặc thậm chí là một hàm

Mặt khác, một mảng là một tập hợp các giá trị được sắp xếp. Mỗi giá trị được gọi là một phần tử, được xác định bởi một chỉ số số. Một mảng có thể bao gồm các giá trị của hầu hết mọi loại. Ví dụ: nó có thể lưu trữ các mục như số nguyên, chuỗi, booleans, hàm, v.v. Mảng JavaScript cũng không bị giới hạn ở một loại duy nhất, nghĩa là một mảng nhất định có thể chứa nhiều loại khác nhau bên trong nó

Khi làm việc với JavaScript, tại một thời điểm cụ thể, bạn có thể cần xác định xem một khóa có tồn tại trong một đối tượng hoặc mảng nhất định hay không

Trong bài viết này, chúng ta sẽ thấy các phương pháp khác nhau mà chúng ta có thể sử dụng để kiểm tra xem một khóa cụ thể có tồn tại trong một đối tượng/mảng JavaScript hay không

Sử dụng toán tử in

Toán tử in trong JavaScript được sử dụng để xác định xem một thuộc tính nhất định có tồn tại trong một đối tượng hoặc các thuộc tính kế thừa của nó hay không (còn được gọi là chuỗi nguyên mẫu của nó). Nếu thuộc tính được cung cấp tồn tại, toán tử in trả về true

Kiểm tra một đối tượng
Kiểm tra một mảng

Vì chúng tôi đã chứng minh rằng toán tử JavaScript in có thể được sử dụng với các đối tượng, nên bạn có thể hỏi liệu nó cũng có thể được sử dụng với các mảng hay không. Trong JavaScript, mọi thứ đều là một thể hiện của kiểu Đối tượng (ngoại trừ kiểu nguyên thủy), vì vậy mảng cũng hỗ trợ toán tử in

Hãy xác nhận xem đó có phải là một thể hiện của loại Object hay không bằng cách sử dụng toán tử instanceof

Bây giờ, quay lại sử dụng toán tử in

Điều này cũng sẽ trả về true cho các thuộc tính phương thức trên một kiểu mảng, trong đó mảng số là một thể hiện

Sử dụng Phương pháp in0

Trong JavaScript, hàm in0 được sử dụng để xác định xem đối tượng có thuộc tính được cung cấp làm thuộc tính riêng của nó hay không. Điều này rất quan trọng để xác định xem thuộc tính có được kế thừa bởi đối tượng hay không phải là của chính nó

Kiểm tra một đối tượng
Kiểm tra một mảng

Bạn có thể bắt đầu tự hỏi liệu điều này có hiệu quả với mảng không. Như chúng ta đã thiết lập trước đó, một mảng thực sự là một nguyên mẫu (ví dụ) của loại Object, do đó, nó cũng có sẵn phương thức này

Sử dụng Phương pháp in3

Phương thức tĩnh in4 tạo và trả về một mảng có các thành phần là các chuỗi tên (khóa) thuộc tính của đối tượng. Điều này có thể được sử dụng để lặp qua các khóa của đối tượng, sau đó chúng ta có thể sử dụng khóa này để xác minh xem có khóa nào khớp với một khóa nhất định trong đối tượng hay không

Sử dụng Phương pháp in5

in5 là một phương thức JavaScript kiểm tra hàm gọi lại trên tất cả các phần tử của mảng đang gọi và trả về true nếu hàm gọi lại trả về true cho bất kỳ phần tử nào trong số chúng

Sử dụng in5 cho các đối tượng

Chúng tôi cũng có thể tùy chỉnh chức năng này thành một chức năng có thể tái sử dụng

Sử dụng in5 cho một mảng

Một lần nữa, giống như với đối tượng, chúng ta cũng có thể sử dụng một chức năng tái sử dụng được tùy chỉnh tương tự để kiểm tra sự tồn tại của một giá trị trong một mảng

Sử dụng Phương pháp in1

Phương thức in1 của JavaScript sẽ trả về chỉ mục của phiên bản đầu tiên của một phần tử trong mảng. Nếu phần tử không tồn tại thì -1 được trả về

Sử dụng in1 cho một đối tượng

Loại Object trong JavaScript không thực sự hỗ trợ phương thức in5, vì các thuộc tính/khóa của nó vốn không có các vị trí được lập chỉ mục trong đối tượng. Thay vào đó, chúng ta có thể lấy các khóa của đối tượng dưới dạng một mảng và sau đó kiểm tra sự tồn tại của khóa bằng phương thức in5

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Hãy nhớ rằng các đối tượng JavaScript không phải lúc nào cũng giữ nguyên thứ tự khóa, vì vậy chỉ mục được trả về có thể không có ý nghĩa như trong mảng. Trong trường hợp này, chỉ mục chủ yếu được sử dụng để xác định sự tồn tại của khóa

Đây là một ví dụ về việc sử dụng điều này trong một chức năng tiện ích

Sử dụng in1 cho một mảng

Như chúng ta đã thấy trong ví dụ trước, mảng hỗ trợ phương thức in5, không giống như các đối tượng. Để sử dụng nó, hãy chuyển giá trị của mục bạn đang tìm kiếm cho in5, sau đó giá trị này sẽ trả về vị trí của giá trị đó nếu nó tồn tại trong mảng

Phần kết luận

Trong bài viết này, chúng ta đã thấy tất cả các cách có thể để chúng ta có thể kiểm tra xem một khóa hoặc mục có tồn tại trong một đối tượng/mảng JavaScript hay không. Chúng tôi trình bày cách sử dụng toán tử in, phương thức in0 và phương thức in2. Chúng ta cũng đã thấy các đối tượng JS và mảng tương tự như thế nào trong đó các mảng kế thừa từ các đối tượng và do đó chứa nhiều phương thức giống nhau

Làm cách nào để chuyển đổi chuỗi thành khóa đối tượng trong JavaScript?

Sử dụng hàm JavaScript JSON. parse() để chuyển văn bản thành đối tượng JavaScript. const obj = JSON. phân tích cú pháp ('{"tên". "John", "tuổi". 30, "thành phố". "New York"}');

Làm cách nào để lấy giá trị của khóa chuỗi trong một đối tượng trong js?

Cách lấy khóa và giá trị của đối tượng trong JavaScript .
đối tượng. keys() phương thức trả về một mảng các chuỗi chứa tất cả các khóa của đối tượng, được sắp xếp theo thứ tự xuất hiện
đối tượng. Phương thức values() trả về một mảng các chuỗi chứa tất cả các giá trị trường của đối tượng, được sắp xếp theo thứ tự xuất hiện
đối tượng

Chuỗi có thể là khóa đối tượng JavaScript không?

Khóa đối tượng trong JavaScript . Each key in your JavaScript object must be a string, symbol, or number.

Làm cách nào để đặt giá trị biến làm khóa trong đối tượng JavaScript?

Bạn cần tạo đối tượng trước, sau đó sử dụng [] để đặt đối tượng . var key = "happyCount"; . đẩy(obj);