Cảm ơn bạn!
Check key exist in object javascript
Khi chúng ta có một object, làm thế nào để kiểm tra một key bất kỳ trong object tồn tại hay không, bài viết này sẽ giúp các bạn giải quyết vấn đề trên 😊.
Check key exist in object JavaScript
Sử dụng in trong Javascript
Chúng ta có thể check key exist trong object bằng cách sử dụng in operator.
Cú pháp: prop in object
- prop: Tên thuộc tính muốn check.
- object:
inoperator sẽ kiểm tra xem trong object này có chứa thuộc tính với tên được chỉ định (prop) hay không.
Cùng xem một ví dụ để hiểu hơn về in operator nhé.
Giả sử mình có một object rapper như sau:
const rapper = {
name: 'Eminem',
born: '1972',
albums: ['Kamikaze', 'The Eminem Show']
}Chúng ta sẽ sử dụng in để kiểm tra xem thuộc tính name trong rapper có tồn tại không nhé, nếu tồn tại in operator trả về true, ngược lại là false.
Các bạn có thể sử dụng in với if để kiểm tra:
if ('name' in rapper) {
//... làm gì đó ở đây :v
}Một cách check key exist trong object nữa đó là sử dụng hasOwnProperty() method, cùng xem method này sử dụng thế nào nhé ^^.
Sử dụng hasOwnProperty() method
Method hasOwnProperty() trả về một giá trị boolean khi kiểm tra trong object có thuộc tính của chính nó hay không.
hasOwnProperty() khác với in operator ở chỗ nó sẽ kiểm tra thuộc tính của chính nó mà không xét các thuộc tính inherited.
Cùng xem một ví dụ để hiểu rõ hơn nhé:
let website = {name: 'homiedev.com'};
// Sử dụng `hasOwnProperty`.
website.hasOwnProperty('name'); // returns true
website.hasOwnProperty('toString'); // returns false
website.hasOwnProperty('hasOwnProperty'); // returns false
// Sử dụng `in` operator
'name' in example; // returns true
'toString' in example; // returns true
'hasOwnProperty' in example; // returns trueỞ ví dụ trên, hasOwnProperty sẽ return true nếu các thuộc tính muốn check nằm trong chính object (Không bao gồm các thuộc tính inherited).
Sử dụng in operator sẽ return true nếu thuộc tính tồn tại trong object (Bao gồm các thuộc tính inherited).
Sử dụng Object.hasOwn()
Tương tự như hasOwnProperty() ta có Object.hasOwn(), method này được khuyên dùng hơn hasOwnProperty(), vì Object.hasOwn() có thể sử dụng cho các object được tạo bằng Object.create(null) và cho các đối tượng đã overridden method kế thừa là hasOwnProperty().
Cùng xem ví dụ dưới đây để hiểu hơn về method này nhé.
let person = Object.create(null);
person.age = 20;
console.log(Object.hasOwn(person, 'age')); // true
console.log(person.hasOwnProperty('age'));
// Uncaught TypeError: person.hasOwnProperty is not a functionMethod hasOwnProperty là method được kế thừa từ Object. Khi sử dụng Object.create(null) sẽ không có các properties như hasOwnProperty(), đây là lý do xảy ra person.hasOwnProperty is not a function.
let person = {
// ghi đè method hasOwnProperty()
hasOwnProperty: function() {
return false;
},
name: 'Vu'
};
// Sử dụng Object.hasOwn()
console.log(Object.hasOwn(person, 'name')); // true
console.log(Object.hasOwn(person, 'hasOwnProperty')); // true
// Sử dụng hasOwnProperty()
console.log(person.hasOwnProperty('name')); // false
console.log(person.hasOwnProperty('hasOwnProperty')); // falseNhiều trình duyệt chưa hỗ trợ method Object.hasOwn().
Kết luận
Như vậy là chúng ta đã tìm hiểu về các cách để kiểm tra key tồn tại trong object. Hy vọng bài viết giúp ích cho các bạn.
Chúc các bạn học tốt ^^.
Một số bài viết khác nên đọc:
