JavaScript で空オブジェクトを判定する方法
Object.keys()
を使う
Object.keys()
はオブジェクトが持つプロパティを配列として取り出すメソッド空オブジェクトであれば空配列になるので length が 0 であるかで判定できる
const obj = {}; if (Object.keys(obj).length === 0) { console.log(obj) }
Object.keys() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
Object.entries()
Object.entries()
はオブジェクトが持つ列挙可能なプロパティの kay, value を配列として取り出すこれも length が 0 かで空オブジェクトか判定できる
const obj = {}; if (Object.entries(obj).length === 0) { console.log(obj); }
Object.entries() - JavaScript | MDN
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
注意点
Object.keys()
, Object.entries()
どちらの方法も、オブジェクトが列挙できないプロパティを持っている場合でも空オブジェクトと判定される
const myObj = Object.create(
{},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
console.log(Object.keys(myObj).length); // 0
console.log(Object.entries(myObj).length); // 0