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

Đôi khi trong Javascript, chúng tôi có một đối tượng mà chúng tôi cần tuân theo một bộ khóa cụ thể. Điều này có thể thực hiện được thông qua việc thực thi kiểu trong TypeScript, nhưng nếu chúng tôi muốn thực hiện một số việc nhất định nếu các khóa không tồn tại, thì chúng tôi phải thực hiện một cách tiếp cận khác

Ví dụ: giả sử chúng tôi đang nhận đối tượng sau từ một mảng, trong đó firstName, lastNameage đều cần thiết cho một thao tác mà chúng tôi muốn hoàn thành. Ví dụ

let obj = { firstName: Jack, lastName: Doe, age: 123 } console.log(`${obj.firstName} ${obj.lastName} is ${obj.age}`);

Nếu chúng tôi đang nhận dữ liệu của mình trong obj từ một mảng, chúng tôi có thể tin tưởng rằng các thuộc tính đó sẽ được cung cấp, nhưng nếu API thay đổi, chúng tôi có thể gặp sự cố. Các nhà phát triển API có thể quyết định xóa age hoặc bất kỳ thuộc tính nào khác hoặc có thể đổi tên firstName thành first_name. Trong trường hợp tốt nhất, điều này sẽ dẫn đến các khóa trở nên không xác định. Trong trường hợp xấu nhất, nó có thể dẫn đến lỗi và làm hỏng ứng dụng của chúng tôi

Để tránh điều này, chúng ta có thể kiểm tra xem đối tượng có các khóa mà chúng ta yêu cầu không

Cách kiểm tra xem đối tượng có chứa tất cả các khóa trong mảng không

Giải pháp cho vấn đề này sử dụng every(). every() là một phương thức mảng kiểm tra mọi phần tử trong một mảng và thực hiện kiểm tra logic trên chúng. Nếu tất cả trả về true, thì phương thức every() trả về true

Để kiểm tra xem một đối tượng có chứa tất cả các khóa trong một mảng hay không, chúng ta chỉ cần sử dụng every() trên một mảng gồm tất cả các khóa mà chúng ta muốn kiểm tra. Bằng cách đó, chúng tôi có thể kiểm tra một cách hợp lý từng phần tử tồn tại và sau đó làm điều gì đó khác nếu nó sai, giúp chúng tôi không gặp phải bất kỳ lỗi nào

let requiredKeys = [ 'firstName', 'lastName', 'age' ] let obj = { firstName: Jack, lastName: Doe, age: 123 } let checkAllKeys = requiredKeys.every((i) => obj.hasOwnProperty(i)); if(checkAllKeys) { console.log(`${obj.firstName} ${obj.lastName} is ${obj.age}`); } else { console.log('The API does not have all the keys required. Please check API and configuration') }

Ở đây chúng tôi tạo một mảng các khóa cần thiết - firstName, lastNameage. Sau đó, chúng tôi sử dụng every() để đi qua từng mục trong mảng đó. Trong every(), chúng tôi chạy một hàm - ở đây,

let requiredKeys = [ 'firstName', 'lastName', 'age' ] let obj = { firstName: Jack, lastName: Doe, age: 123 } let checkAllKeys = requiredKeys.every((i) => obj.hasOwnProperty(i)); if(checkAllKeys) { console.log(`${obj.firstName} ${obj.lastName} is ${obj.age}`); } else { console.log('The API does not have all the keys required. Please check API and configuration') }
8 là mục hiện tại đang được lặp qua. Nếu obj có thuộc tính

let requiredKeys = [ 'firstName', 'lastName', 'age' ] let obj = { firstName: Jack, lastName: Doe, age: 123 } let checkAllKeys = requiredKeys.every((i) => obj.hasOwnProperty(i)); if(checkAllKeys) { console.log(`${obj.firstName} ${obj.lastName} is ${obj.age}`); } else { console.log('The API does not have all the keys required. Please check API and configuration') }
8, thì every() sẽ trả về true cho mục cụ thể đó

Nếu mọi mục trả về giá trị true, thì firstName2 trả về giá trị true tổng thể. Nếu không nó sẽ trả về false. Như vậy, nếu firstName3 là đúng, chúng tôi có thể chắc chắn rằng nó có tất cả các khóa mà chúng tôi cần. Nếu không, chúng ta có thể làm điều gì đó khác - như bảng điều khiển ghi lại lỗi

Làm cách nào để tìm khóa trong mảng đối tượng JavaScript?

Sử dụng Phương thức indexOf() . Nếu phần tử không tồn tại thì -1 được trả về.

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

Phương thức indexof() trong Javascript là một trong những cách thuận tiện nhất để tìm hiểu xem một giá trị có tồn tại trong một mảng hay không. Phương thức indexof() hoạt động trên hiện tượng số chỉ mục. Phương thức này trả về chỉ mục của mảng nếu tìm thấy và trả về -1 nếu không.

Làm cách nào để kiểm tra xem một thuộc tính có tồn tại trong một mảng đối tượng JavaScript không?

JavaScript cung cấp cho bạn ba cách phổ biến để kiểm tra xem một thuộc tính có tồn tại trong một đối tượng hay không. .
Sử dụng phương thức hasOwnProperty()
Sử dụng toán tử in
So sánh tài sản với không xác định