Kiểm tra xem cặp giá trị khóa có tồn tại trong đối tượng javascript không

JavaScript đã đi một chặng đường dài trong những năm gần đây, giới thiệu một số chức năng tiện ích tuyệt vời như Object. phím, đối tượng. giá trị và nhiều hơn nữa. Trong bài viết này, chúng ta sẽ khám phá cách kiểm tra xem một Đối tượng JavaScript có bất kỳ khóa nào trên đó không

Đầu tiên, hãy nhanh chóng chứng minh “cách cũ” để làm mọi việc, bao gồm việc sử dụng vòng lặp for

const item = { id: '🥽', name: 'Goggles', price: 1499 };

let hasKeys = false;

// oldschool approach
for (const key in item) {
  if (item.hasOwnProperty(key)) {
    // a key exists at this point, for sure!
    hasKeys = true;
    break; // break when found
  }
}

Bạn sẽ nhận thấy rằng chúng tôi cần giới thiệu câu lệnh break (đừng quên, chúng tôi không muốn có bất kỳ lỗi nào trong cơ sở mã của mình), điều này dẫn chúng tôi đến các cách tiếp cận hiện đại hơn, ít lỗi hơn để sử dụng các công cụ tốt hơn

Cách tiếp cận hiện đại hơn và đơn giản hơn, cũng tuân theo phong cách Lập trình hàm là chọn Object.keys(), trả về cho chúng ta một Mảng các khóa trên một Đối tượng (ai đoán được?)

const item = { id: '🥽', name: 'Goggles', price: 1499 };

// newschool approach
const hasKeys = !!Object.keys(item).length;

Kết hợp điều này với một !! double-bang, chúng ta có thể chuyển đổi length của Mảng được trả về thành Boolean, đảm bảo chúng ta nhận được giá trị đọc là true hoặc false. Không hoàn toàn cần thiết phải làm như vậy, nhưng tôi nghĩ ý định rõ ràng hơn

Kiểm tra xem cặp giá trị khóa có tồn tại trong đối tượng javascript không
Kiểm tra xem cặp giá trị khóa có tồn tại trong đối tượng javascript không

Sách điện tử miễn phí

Chỉ thị, đơn giản phải không? . Nhìn bề ngoài chúng có vẻ đơn giản, nhưng ngay cả các nhà phát triển Angular lành nghề cũng chưa nắm hết mọi khái niệm trong eBook này

  • Đài quan sát và ống không đồng bộ
  • Kiểm tra danh tính và hiệu suất
  • Cấu phần web syntax
  • và Thành phần quan sát được
  • Các mẫu kết xuất nâng cao
  • Setters và Getters cho Styles và Class Bindings

Tải xuống

Điều đó diễn ra suôn sẻ, hãy kiểm tra email của bạn

🎓 Nếu bạn chỉ làm

const item = { id: '🥽', name: 'Goggles', price: 1499 };

// newschool approach
const hasKeys = !!Object.keys(item).length;
0 thì vẫn đánh giá như vậy, nhưng điều này phụ thuộc vào giá trị “thật” hay “sai”. Đôi khi, thật tuyệt khi có một Boolean ngay lập tức và do đó, !! là một cách nhanh chóng để đạt được điều đó. Bạn cũng có thể sử dụng
const item = { id: '🥽', name: 'Goggles', price: 1499 };

// newschool approach
const hasKeys = !!Object.keys(item).length;
2 nhưng điều đó gần như không hay bằng…

Nếu bạn muốn một chức năng có thể tái sử dụng để lấy độ dài của các phím của Đối tượng, bạn có thể làm điều gì đó như thế này

const item = { id: '🥽', name: 'Goggles', price: 1499 };

const getKeyLength = (x) => Object.keys(k).length;

const keyLength = getKeyLength(item); // 3
const hasKeys = !!keyLength; // true

🏆 Ồ, và nếu bạn muốn tìm hiểu thêm về JavaScript, hãy truy cập các khóa học JavaScript của chúng tôi để xem cách chúng có thể giúp bạn nâng cao kỹ năng của mình

P. S. Đây là một StackBlitz được nhúng với mọi thứ bên trong, vì vậy bạn có thể sử dụng nó trong thời gian thực

Cảm ơn bạn đã đọc, hãy xem Bản tin của chúng tôi để cập nhật những thông tin mới nhất và hay nhất về mọi thứ trên web

Làm cách nào để kiểm tra xem một cặp giá trị khóa có tồn tại trong một đối tượng JavaScript không?

Có hai phương pháp chủ yếu để kiểm tra sự tồn tại của khóa trong Đối tượng JavaScript. Cái đầu tiên là sử dụng “toán tử trong” và cái thứ hai là sử dụng “phương thức hasOwnProperty()” . Phương pháp 1. Sử dụng toán tử 'in'. Toán tử in trả về giá trị boolean nếu thuộc tính được chỉ định nằm trong đối tượng.

Cách kiểm tra nếu khóa

Sử dụng hàm hasOwnProperty() . 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.

Làm cách nào để kiểm tra xem giá trị có tồn tại trong đối tượng JavaScript không?

_. Phương thức has() dùng để kiểm tra xem đường dẫn có phải là thuộc tính trực tiếp của đối tượng hay không. Nó trả về true nếu đường dẫn tồn tại, nếu không nó trả về false.

Làm cách nào để kiểm tra xem một đối tượng có khóa JavaScript cụ thể không?

Bạn co thể thử. myObj. key trả về true (nếu in) và false (nếu không)