オブジェクトというのは、「{}」のことです。
これが空かどうかの判定は実装自体簡単なのですが、調べるまで良く分かりませんでした。
ということで備忘も兼ねて、JavaScriptでオブジェクト({})の空判定を行う方法を解説しまっすん。
この判定ではダメだったよ
最初、「こんな感じでやれば判定できるでしょ」ということでコードを書いてみたのですがダメでした。
1 2 3 |
if (value === {}) { console.log('空やで'); } |
※この場合、コンソールログが出力されませんでした。
Object.keys(obj).lengthで全て解決!
オブジェクトを扱う時に「Object.keys(obj)」は良く使用されます。
要は、これを使って長さを調べれば、オブジェクトが空かどうかが分かるということです。
1 2 3 |
if (!Object.keys(obj).length) { console.log('空やで'); } |
こんな感じで全て解決!
JSON.stringify(obj)もいけるで!
こんな方法もあります。
1 2 3 |
if (JSON.stringify(obj) === '{}') { console.log('空やで'); } |
※この方法は速度が遅いのでおすすめしません。
まとめ
ちょっとしたことですが意外に難しい。。
特にJavaScriptはアプローチがいくつもあるのでどれが最善なのか判断が難しくもあります。
ではさいなら!