Hướng dẫn check key exist in object javascript - khóa kiểm tra tồn tại trong đối tượng javascript

Câu trả lời nhanh

Làm cách nào để kiểm tra xem một khóa cụ thể có tồn tại trong một đối tượng hoặc mảng JavaScript không? Nếu một khóa không tồn tại và tôi cố gắng truy cập nó, nó sẽ trả về sai? Hoặc ném một lỗi?

Truy cập trực tiếp một thuộc tính bị thiếu bằng cách sử dụng kiểu mảng hoặc kiểu đối tượng sẽ trả về một hằng số không xác định.

Chậm và đáng tin cậy trong toán tử và phương pháp HasownProperty

Như mọi người đã đề cập ở đây, bạn có thể có một đối tượng với một tài sản được liên kết với hằng số "không xác định".

 var bizzareObj = {valid_key:  undefined};

Trong trường hợp đó, bạn sẽ phải sử dụng HasownProperty hoặc trong nhà điều hành để biết chìa khóa có thực sự ở đó không. Nhưng, nhưng với giá nào?

Vì vậy, tôi nói với bạn ...

Trong toán tử và HasownProperty là "phương pháp" sử dụng cơ chế mô tả thuộc tính trong JavaScript [tương tự như phản xạ Java trong ngôn ngữ Java].

//www.ecma-international.org/ecma-262/5.1/#sec-8.10

Loại mô tả thuộc tính được sử dụng để giải thích thao tác và thống nhất các thuộc tính thuộc tính được đặt tên. Các giá trị của loại mô tả thuộc tính là các bản ghi bao gồm các trường được đặt tên trong đó mỗi tên trường tên là một tên thuộc tính và giá trị của nó là giá trị thuộc tính tương ứng như được chỉ định trong 8.6.1. Ngoài ra, bất kỳ lĩnh vực có thể có mặt hoặc vắng mặt.

Mặt khác, gọi một phương thức đối tượng hoặc khóa sẽ sử dụng cơ chế JavaScript [[get]]. Đó là một cách xa hơn nhanh hơn!

Điểm chuẩn

//jsben.ch/HaHQt

.

Sử dụng trong toán tử

var result = "Impression" in array;

Kết quả là

12,931,832 ±0.21% ops/sec      92% slower 

Sử dụng Hasownproperty

var result = array.hasOwnProperty["Impression"]

Kết quả là

Sử dụng Hasownproperty

16,021,758 ±0.45% ops/sec     91% slower

var result = array["Impression"] === undefined

Kết quả là

168,270,439 ±0.13 ops/sec     0.02% slower 

Sử dụng Hasownproperty

var result = array.Impression  === undefined;

Kết quả là

168,303,172 ±0.20%     fastest

Sử dụng Hasownproperty

16,021,758 ±0.45% ops/sec     91% slower

Truy cập các yếu tố trực tiếp [phong cách dấu ngoặc]confirmed lack of value. On the other hand,

12,931,832 ±0.21% ops/sec      92% slower 
2 is an unknown value [not defined]. If there is a property that will be used later with a proper value consider use
12,931,832 ±0.21% ops/sec      92% slower 
3 reference instead of
12,931,832 ±0.21% ops/sec      92% slower 
2 because in the initial moment the property is confirmed to lack value.

Compare:

var a = {1: null}; 
console.log[a[1] === undefined]; // output: false. I know the value at position 1 of a[] is absent and this was by design, i.e.:  the value is defined. 
console.log[a[0] === undefined]; // output: true. I cannot say anything about a[0] value. In this case, the key 0 was not in a[].

Truy cập các yếu tố trực tiếp [kiểu đối tượng]

Chỉnh sửa: Lý do gán cho thuộc tính giá trị

12,931,832 ±0.21% ops/sec      92% slower 
2 là gì?

Câu hỏi đó đặt câu hỏi cho tôi. Trong JavaScript, có ít nhất hai tài liệu tham khảo cho các đối tượng vắng mặt để tránh các vấn đề như thế này:
12,931,832 ±0.21% ops/sec      92% slower 
3 và
12,931,832 ±0.21% ops/sec      92% slower 
2.

12,931,832 ±0.21% ops/sec      92% slower 
3 là giá trị nguyên thủy đại diện cho sự vắng mặt có chủ ý của bất kỳ giá trị đối tượng nào, hoặc trong thời gian ngắn, sự thiếu giá trị được xác nhận. Mặt khác,
12,931,832 ±0.21% ops/sec      92% slower 
2 là một giá trị không xác định [không được xác định]. Nếu có một thuộc tính sẽ được sử dụng sau này với giá trị thích hợp, hãy xem xét việc sử dụng tham chiếu ____23 thay vì
12,931,832 ±0.21% ops/sec      92% slower 
2 vì trong thời điểm ban đầu, tài sản được xác nhận là thiếu giá trị.

Các đối tượng trong JavaScript là các loại dữ liệu không nguyên thủy chứa một bộ sưu tập các cặp giá trị khóa không có thứ tự.

Như bạn có thể thấy trong hình trên, khóa là thuộc tính và mỗi giá trị đối tượng phải có khóa.

Khi tương tác với các đối tượng, các tình huống có thể phát sinh yêu cầu bạn kiểm tra xem một khóa cụ thể có tồn tại không. Điều quan trọng cần lưu ý là nếu bạn biết một khóa tồn tại tự động có nghĩa là một giá trị tồn tại. Giá trị này có thể là bất cứ điều gì - thậm chí trống rỗng, null hoặc không xác định.

Trong bài viết này, chúng tôi sẽ tìm hiểu các phương pháp khác nhau để kiểm tra xem khóa của một đối tượng có tồn tại trong JavaScript hay không.

Trong trường hợp bạn đang vội, đây là hai phương pháp tiêu chuẩn chúng ta có thể sử dụng để kiểm tra:

var result = "Impression" in array;
0

Bạn có thể sử dụng toán tử JavaScript

var result = array.hasOwnProperty["Impression"]
1 để kiểm tra xem thuộc tính/khóa được chỉ định có tồn tại trong một đối tượng không. Nó có cú pháp đơn giản và trả về
var result = array.hasOwnProperty["Impression"]
4 nếu thuộc tính/khóa được chỉ định tồn tại trong đối tượng được chỉ định hoặc chuỗi nguyên mẫu của nó.

Cú pháp khi sử dụng toán tử

var result = array.hasOwnProperty["Impression"]
1 là:

var result = "Impression" in array;
1

Giả sử chúng ta có một đối tượng chứa chi tiết của người dùng:

var result = "Impression" in array;
2

Chúng ta có thể kiểm tra xem một khóa có tồn tại với toán tử

var result = array.hasOwnProperty["Impression"]
1 như được thấy dưới đây không:

var result = "Impression" in array;
3

Lưu ý: Giá trị trước từ khóa

var result = array.hasOwnProperty["Impression"]
1 phải thuộc loại
var result = array.hasOwnProperty["Impression"]
8 hoặc
var result = array.hasOwnProperty["Impression"]
9.

Cách kiểm tra xem một đối tượng có
16,021,758 ±0.45% ops/sec     91% slower
0 trong JavaScript với phương pháp
var result = array.hasOwnProperty["Impression"]
2 không

Bạn có thể sử dụng phương thức JavaScript

var result = array.hasOwnProperty["Impression"]
2 để kiểm tra xem một đối tượng được chỉ định có thuộc tính đã cho làm thuộc tính của nó không. T

Phương pháp của anh ấy khá giống với toán tử

var result = array.hasOwnProperty["Impression"]
1. Phải mất một
var result = array.hasOwnProperty["Impression"]
8 và sẽ trả lại
var result = array.hasOwnProperty["Impression"]
4 nếu
16,021,758 ±0.45% ops/sec     91% slower
0 tồn tại trong đối tượng và
16,021,758 ±0.45% ops/sec     91% slower
7 nếu không.

Cú pháp khi sử dụng phương thức

var result = array.hasOwnProperty["Impression"]
2 là:

var result = "Impression" in array;
4

Giả sử chúng ta có một đối tượng chứa chi tiết của người dùng:

var result = "Impression" in array;
2

Chúng ta có thể kiểm tra xem một khóa có tồn tại với toán tử

var result = array.hasOwnProperty["Impression"]
1 như được thấy dưới đây không:

var result = "Impression" in array;
6

Lưu ý: Giá trị trước từ khóa

var result = array.hasOwnProperty["Impression"]
1 phải thuộc loại
var result = array.hasOwnProperty["Impression"]
8 hoặc
var result = array.hasOwnProperty["Impression"]
9.

Cách kiểm tra xem một đối tượng có

16,021,758 ±0.45% ops/sec     91% slower
0 trong JavaScript với phương pháp
var result = array.hasOwnProperty["Impression"]
2 không

var result = "Impression" in array;
7

Bạn có thể sử dụng phương thức JavaScript
var result = array.hasOwnProperty["Impression"]
2 để kiểm tra xem một đối tượng được chỉ định có thuộc tính đã cho làm thuộc tính của nó không. T

Phương pháp của anh ấy khá giống với toán tử

var result = array.hasOwnProperty["Impression"]
1. Phải mất một
var result = array.hasOwnProperty["Impression"]
8 và sẽ trả lại
var result = array.hasOwnProperty["Impression"]
4 nếu
16,021,758 ±0.45% ops/sec     91% slower
0 tồn tại trong đối tượng và
16,021,758 ±0.45% ops/sec     91% slower
7 nếu không.

Cú pháp khi sử dụng phương thức

var result = array.hasOwnProperty["Impression"]
2 là:

Lưu ý: Giá trị bạn chuyển vào phương thức

var result = array.hasOwnProperty["Impression"]
2 phải thuộc loại
var result = array.hasOwnProperty["Impression"]
8 hoặc
var result = array.hasOwnProperty["Impression"]
9.

var result = "Impression" in array;
8

Vì bây giờ chúng ta biết rằng các phương pháp này tồn tại, giờ đây chúng ta có thể sử dụng một điều kiện để kiểm tra và thực hiện bất kỳ hoạt động nào chúng ta muốn thực hiện:

var result = "Impression" in array;
9

Gói lên

12,931,832 ±0.21% ops/sec      92% slower 
0

Trong bài viết này, chúng tôi đã học được cách kiểm tra xem một đối tượng có khóa bằng hai phương pháp tiêu chuẩn không. Sự khác biệt giữa hai phương thức là

var result = array["Impression"] === undefined
3 tìm kiếm một khóa trong một đối tượng trong khi toán tử
var result = array.hasOwnProperty["Impression"]
1 tìm khóa trong đối tượng và chuỗi nguyên mẫu của nó.

12,931,832 ±0.21% ops/sec      92% slower 
1

Có những phương pháp khác bạn có thể sử dụng, nhưng đến một lúc nào đó chúng có thể trở nên quá phức tạp và không dễ hiểu. Họ cũng có thể thất bại khi được thử nghiệm chống lại một số điều kiện nhất định.

Ví dụ: chúng ta có thể sử dụng chuỗi tùy chọn, vì vậy nếu một khóa được chỉ định không tồn tại, nó sẽ trả về

12,931,832 ±0.21% ops/sec      92% slower 
2:

Vì vậy, chúng tôi có thể tạo ra một điều kiện mà khi nó không bằng

12,931,832 ±0.21% ops/sec      92% slower 
2, điều đó có nghĩa là chính tồn tại:

Làm thế nào để bạn kiểm tra xem một khóa tồn tại trong một đối tượng trong JavaScript?

Chủ yếu có hai phương pháp để kiểm tra sự tồn tại của một khóa trong đối tượng JavaScript. Cái đầu tiên là sử dụng các nhà điều hành trong nhà điều hành và phương pháp thứ hai là sử dụng phương thức Has HasOwnProperty []. Phương pháp 1: Sử dụng toán tử 'In': Toán tử trong trả về giá trị boolean nếu thuộc tính được chỉ định nằm trong đối tượng.using “in operator” and the second one is using “hasOwnProperty[] method”. Method 1: Using 'in' operator: The in operator returns a boolean value if the specified property is in the object.

Làm thế nào để bạn kiểm tra xem một khóa có ở trong một đối tượng không?

Bạn có thể sử dụng JavaScript trong toán tử để kiểm tra xem thuộc tính/khóa được chỉ định có tồn tại trong một đối tượng không. Nó có một cú pháp đơn giản và trả về true nếu thuộc tính/khóa được chỉ định tồn tại trong đối tượng được chỉ định hoặc chuỗi nguyên mẫu của nó. Lưu ý: Giá trị trước từ khóa phải thuộc chuỗi hoặc ký hiệu.use the JavaScript in operator to check if a specified property/key exists in an object. It has a straightforward syntax and returns true if the specified property/key exists in the specified object or its prototype chain. Note: The value before the in keyword should be of type string or symbol .

Làm thế nào để bạn kiểm tra xem một khóa có tồn tại trong một mảng các đối tượng JavaScript không?

Sử dụng hàm HasownProperty [] Hàm HasownProperty [] sẽ kiểm tra sự tồn tại của khóa trong đối tượng đã cho và trả về đúng nếu khóa có mặt nếu không nó sẽ trả về sai.Hàm này lấy khóa của đối tượng làm tham số và trả về kết quả boolean tương ứng. The function hasOwnProperty[] will check for the existence of a key in the given object and returns true if the key is present or else it returns false. This function takes the key of the object as the parameter and returns the Boolean result accordingly.

Làm thế nào để bạn kiểm tra xem khóa không có trong đối tượng?

Ví dụ 2: Kiểm tra xem khóa có tồn tại trong đối tượng bằng cách sử dụng HasownProperty [] chính không.Trong chương trình trên, phương thức HasownProperty [] được sử dụng để kiểm tra xem một khóa có tồn tại trong một đối tượng không.Phương thức HasownProperty [] trả về true nếu khóa được chỉ định nằm trong đối tượng, nếu không nó sẽ trả về sai.hasOwnProperty[] The key exists. In the above program, the hasOwnProperty[] method is used to check if a key exists in an object. The hasOwnProperty[] method returns true if the specified key is in the object, otherwise it returns false .

Bài Viết Liên Quan

Chủ Đề