HomeLập trìnhJavaScriptKhóa JavaScript trong...

Khóa JavaScript trong đối tượng – Cách kiểm tra xem một đối tượng có Khóa trong JS không


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 tập hợp các cặp khóa-giá trị không theo thứ tự.

s_D8321C80F6574B261A5AA02D2476A50C8DDF61A6CC2583DCEE0E18EC365EF07B_1658417045591_Untitled+Sơ đồ

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ó một khóa.

Khi tương tác với các đối tượng, có thể nảy sinh các tình huống yêu cầu bạn kiểm tra xem có tồn tại một khóa cụ thể hay 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, điều đó tự động có nghĩa là một giá trị tồn tại. Giá trị này có thể là bất kỳ thứ gì – thậm chí trống, rỗng hoặc không xác định.

Trong bài viết này, chúng ta sẽ tìm hiểu các phương pháp khác nhau để kiểm tra xem khóa của đố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 mà chúng tôi có thể sử dụng để kiểm tra:

// Using in operator
'key' in object

// Using hasOwnProperty() method
object.hasOwnProperty('key')

Cách kiểm tra xem một đối tượng có key trong JavaScript với in Nhà điều hành

Bạn có thể sử dụng JavaScript in toán tử để kiểm tra xem một thuộc tính/khóa được chỉ định có tồn tại trong một đối tượng hay không. Nó có 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ó.

Đọc thêm  Cách phân biệt giữa bản sao sâu và nông trong JavaScript

Cú pháp khi sử dụng in toán tử là:

'key' in object

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

let user = {
  name: "John Doe",
  age: 40
};

Chúng ta có thể kiểm tra xem một khóa có tồn tại hay không với in nhà điều hành như được thấy dưới đây:

'name' in user; // Returns true
'hobby' in user; // Returns false
'age' in user; // Returns true

Lưu ý: Giá trị trước in từ khóa phải thuộc loại string hoặc symbol.

Cách kiểm tra xem một đối tượng có key trong JavaScript với hasOwnProperty() Phương pháp

Bạn có thể sử dụng JavaScript hasOwnProperty() phương thức để 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ó hay không. t

phương pháp của anh ấy khá giống với phương pháp in nhà điều hành. Nó mất trong một string và sẽ trở lại true nếu key tồn tại trong đối tượng và false nếu không thì.

Cú pháp khi sử dụng hasOwnProperty() phương pháp là:

object.hasOwnProperty('key')

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

let user = {
  name: "John Doe",
  age: 40
};

Chúng ta có thể kiểm tra xem một khóa có tồn tại hay không với in nhà điều hành như được thấy dưới đây:

user.hasOwnProperty('name'); // Returns true
user.hasOwnProperty('hobby'); // Returns false
user.hasOwnProperty('age'); // Returns true

Lưu ý: Giá trị bạn chuyển vào hasOwnProperty() phương thức phải thuộc loại string hoặc symbol.

Vì bây giờ chúng ta biết rằng các phương thức này tồn tại, bây giờ 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ỳ thao tác nào chúng ta muốn thực hiện:

if ("name" in user) {
  console.log("the key exists on the object");
}

// Or

if (user.hasOwnProperty("name")) {
  console.log("the key exists on the object");
}

kết thúc

Trong bài viết này, chúng ta đã học cách kiểm tra xem một đối tượng có khóa hay không bằng hai phương pháp tiêu chuẩn. Sự khác biệt giữa hai phương pháp là Object.hasOwnProperty() tìm kiếm một chìa khóa trong một đối tượng một mình trong khi in toán tử tìm khóa trong đối tượng và chuỗi nguyên mẫu của nó.

Đọc thêm  Phạm vi và Đóng cửa trong JavaScript – Được giải thích bằng các ví dụ

Có nhiều phương pháp khác mà bạn có thể sử dụng, nhưng tại một số điểm, chúng có thể trở nên quá phức tạp và không dễ hiểu. Chúng cũng có thể thất bại khi thử nghiệm vớ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ề undefined:

let user = {
  name: "John Doe",
  age: 40
};

console.log(user?.name); // Returns John Doe
console.log(user?.hobby); // Returns undefined
console.log(user?.age); // Returns 40

Vì vậy, chúng ta có thể tạo một điều kiện mà khi nó không bằng undefinedđiều đó có nghĩa là khóa tồn tại:

if (user?.hobby !== undefined) {
  console.log("The key exists on the object");
}

Như chúng tôi đã nói trước đó, các phương pháp này không thành công khi được thử nghiệm trong một số điều kiện không phổ biến. Ví dụ: trong trường hợp khi một khóa cụ thể được đặt thành “không xác định”, như bên dưới, điều kiện không thành công:

let user = {
  name: "John Doe",
  age: undefined
};

console.log(user?.age); // Returns undefined

Một ví dụ khác khi nó hoạt động nhưng phức tạp hơn là khi chúng ta sử dụng Object.keys() phương pháp bên cạnh some() phương pháp. Điều này hoạt động nhưng không thực sự dễ hiểu:

let user = {
  name: "John Doe",
  age: undefined
};

const checkIfKeyExist = (objectName, keyName) => {
    let keyExist = Object.keys(objectName).some(key => key === keyName);
    return keyExist;
};
  
console.log(checkIfKeyExist(user, 'name')); // Returns true

Trong đoạn mã trên, chúng tôi đã loại bỏ tất cả các khóa dưới dạng một mảng và sau đó áp dụng some() phương pháp để kiểm tra xem ít nhất một phần tử trong mảng có vượt qua bài kiểm tra hay không. Nếu nó vượt qua, nó sẽ trở lại truekhác false.

Chúc mừng mã hóa!

Đọc thêm  Cách chuyển đổi bảng HTML tĩnh thành lưới dữ liệu JavaScript động



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status