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:
in
operator 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 function
Method 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')); // false
Nhiề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: