[Js]オブジェクトが空のオブジェクトかどうかを判断する.

6182 ワード

目次
  • 1.Object.keys判断
  • .Object.getOwn PropertyNames
  • 1.Object.keys判断
    Es 6のObject.keys方法を使用して、空のオブジェクトを確認します.配列に戻ります.メンバーはパラメータオブジェクト自身の全てのアクセス可能な属性のキーです.
      <script>
        let myObj = {
         
          name: "  ",
          age: '1024',
          sex: ' '
        }
        console.log(Object.keys(myObj)); // ["name", "age", "sex"]
      </script>
    
  • では、オブジェクト内の属性の長さが0
  • かどうかを判断することができます.
  • はまた、オブジェクトの構造関数がObjectであるかどうかを判断する必要があります.他の構造関数であれば、new Stringなどもtrueを得ることができます.ここでは、オブジェクトが空のオブジェクトかどうかを判断したいので、前の条件と同じです.
  •   <script>
        let myObj1 = {
         
          name: "  ",
          age: '1024',
          sex: ' '
        }
        let myObj2 = {
         }
    
        //                true,     false
        function judgeObj(obj) {
         
          return (Object.keys(obj).length === 0 && obj.constructor === Object)
        }
    
        console.log(judgeObj(myObj1)); // false
      </script>
    
    2.Object.getOwn PropertyNames
  • の大部分の場合、Object.getOwnPropertyNames()Object.keys(obj)の機能は同じである.
  • は、Object.getOwnPropertyNamesが戻ってきたのは、オブジェクトのすべての属性であり、Object.keys(obj)が戻ってきたのは、エニュメレート・属性、つまり、属性下のenumerable:false
  • である.
      <script>
        let myObj1 = {
         
          name: "  ",
          age: '1024',
          sex: ' '
        }
        let myObj2 = {
         }
    
        //                true,     false
        function judgeObj(obj) {
         
          return Object.getOwnPropertyNames(obj).length === 0
        }
    
        console.log(judgeObj(myObj2));
      </script>