javascript オブジェクトが空であるか判定する方法

javascript オブジェクトが空であるか判定する方法

javascriptで、オブジェクトの中が空であるかを判定するサンプルコードを記述してます。keyの長さと論理否定演算子「!」を利用して判定します。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 106.0.5249.103

判定方法

「key」の長さを取得して、長さが存在しない「0」であれば空であると判定します

// 空のオブジェクトを用意
const obj = {};

console.log( Object.keys(obj).length === 0 ); // true

// 要素があればfalse
console.log( Object.keys({ "a":"1", "b":"2", "c":"3"}).length === 0 ); // false

// 長さを取得した結果は以下となります
console.log(Object.keys({}).length); // 0
console.log(Object.keys({ "a":"1", "b":"2", "c":"3"}).length); // 3

また、「key」の長さを取得して「0」であれば「0」は真偽値で「false」扱いとなるので、「!」で反転させることで判定することが可能です。

!Object.keys(obj).length;

「!Object.keys(obj).length」を使用した例

console.log(!Object.keys({}).length); // true
console.log(!Object.keys({ "a":"1", "b":"2", "c":"3"}).length); // false

console.log(Object.keys({}).length); // 0
console.log(Object.keys({ "a":"1", "b":"2", "c":"3"}).length); // 3

console.log(!0); // true
console.log(!1); // false
console.log(!3); // false

空のオブジェクトと比較

空のオブジェクトと比較した場合は、結果は「false」になります。
※オブジェクトの場合は参照先が比較の対象になるため

// 空のオブジェクトを用意
const obj = {};

console.log( obj === {} ); // false
console.log( obj == {} ); // false

なので「 {} 」同士を比較すると「 false 」を指定します。

// 空のオブジェクトを用意
const obj = {};

console.log( obj === obj ); // true
console.log( obj == {} ); // false
console.log( {} == {} ); // false