banner image

Cách kiểm tra empty object trong JavaScript

Empty object trong Javascript phải thỏa mãn cả 2 điều kiện: là object và không có thuộc tính enumerable. Vì vậy, mình sẽ kiểm tra từng thành phần như sau.

const emptyObject = {};

1. Kiểm tra là object

Để một giá trị là object thì điều kiện cần là nó phải khác null và khác undefined. Tiếp theo, điều kiện đủ là constructor của nó là Object.

Ví dụ:

const a = 1,
  b = 'hello',
  c = [1, 2],
  d = { x: 6 },
  e = () => {};

console.log(a.constructor); // Number
console.log(b.constructor); // String
console.log(c.constructor); // Array
console.log(d.constructor); // Object
console.log(e.constructor); // Function
Như vậy, mình sẽ viết hàm check object như sau:

const isObject = v => {
  return !!v && v.constructor === Object;
};
Thử kiểm tra lại xem sao:

const a = 1,
  b = 'hello',
  c = [1, 2],
  d = { x: 6 },
  e = () => {},
  f = null,
  g = undefined;

console.log(isObject(a)); // false
console.log(isObject(b)); // false
console.log(isObject(c)); // false
console.log(isObject(d)); // true
console.log(isObject(e)); // false
console.log(isObject(f)); // false
console.log(isObject(g)); // false
Kết quả hiện thị bên trên là đúng với yêu cầu. Tiếp theo mình sẽ triển khai phần kiểm tra object là empty.

2. Kiểm tra object là empty

Để kiểm tra object là empty trong ES6, mình sẽ sử dụng phương thức Object.keys(). Phương thức này trả về một mảng chứa tất cả các thuộc tính enumerable của object.
Vì vậy, nếu kết quả trả về là mảng rỗng thì suy ra object đó không chứa thuộc tính enumerable nào.

Ví dụ:

const a = {},
  b = { x: 1 },
  c = { m: 'a', n: 'b' };

console.log(Object.keys(a)); // []
console.log(Object.keys(b)); // ["x"]
console.log(Object.keys(c)); // ["m", "n"]
Bây giờ, mình sẽ viết hàm kiểm tra object có empty hay không như sau:

const isEmpty = v => {
  return Object.keys(v).length === 0;
};
Kiểm tra lại phương thức trên:

const a = {},
  b = { x: 1 },
  c = { m: 'a', n: 'b' };

console.log(isEmpty(a)); // true
console.log(isEmpty(b)); // false
console.log(isEmpty(c)); // false
Kết quả lần này lại đúng như mong đợi.

3. Tổng hợp cách kiểm tra empty object trong JavaScript

Kết hợp 2 đoạn kiểm tra trên, mình suy ra hàm để kiểm tra empty object trong JavaScript là:

const isEmptyObject = v => {
  return !!v && v.constructor === Object && Object.keys(v).length === 0;
};
Ví dụ:

const a = 1,
  b = 'hello',
  c = [1, 2],
  d = {},
  e = () => {},
  f = null,
  g = undefined,
  h = { a: 1, b: 2, c: '3' };

console.log(isEmptyObject(a)); // false
console.log(isEmptyObject(b)); // false
console.log(isEmptyObject(c)); // false
console.log(isEmptyObject(d)); // true
console.log(isEmptyObject(e)); // false
console.log(isEmptyObject(f)); // false
console.log(isEmptyObject(g)); // false
console.log(isEmptyObject(h)); // false



Bài viết được tham khảo tại: https://completejavascript.com/kiem-tra-empty-object-trong-javascript
Cách kiểm tra empty object trong JavaScript Cách kiểm tra empty object trong JavaScript Reviewed by kentrung on October 28, 2019 Rating: 5

No comments:

Powered by Blogger.