JavaScript에서 객체가 비어 있는지 확인하는 방법(코드 예)

不言
풀어 주다: 2019-04-02 09:57:54
앞으로
2434명이 탐색했습니다.

이 글의 내용은 JavaScript에서 객체가 비어 있는지 확인하는 방법(코드 예시)입니다. 특정 참조 값이 있으므로 도움이 필요한 친구에게 도움이 되길 바랍니다.

배열이 비어 있는지 확인하는 것은 쉽습니다. 길이 메소드를 직접 호출하면 됩니다. 그러면 객체가 비어 있는지 확인하는 방법❓

여기서 비어 있다는 것은 객체에 고유한 속성이 없다는 것을 의미합니다. 두 개의 객체, 하나는 obj이고 다른 하나는 anotherObj

let obj1 = {
    name: 'oli',
    child: {
        name: 'oliver'
    }
}

let obj2 = {
    [Symbol('name')]: 'alice'
}

let obj3 = Object.defineProperty({}, 'name', {
    value: 'alice',
    enumerable: false
})

let obj4 = Object.create(null)

// 我们需要一个函数,判断是否不含自有属性

isEmpty(obj1) // false
isEmpty(obj2) // false
isEmpty(obj3) // false
isEmpty(obj4) // true
로그인 후 복사
❗️오랜 시간 동안 객체에 Symbol 속성이 있는지 확인한 후 getOwnPropertySymbols 메소드만 사용할 수 있습니다. 더 좋은 방법이 있으면 메시지를 남겨주세요

방법 1: Traversal

for-in traversal을 수행하고 hasOwnProperty 메서드를 통해 특정 키가 존재하는지 확인합니다. 이 메서드는 열거 가능 값이 false인 속성을 순회할 수 없습니다

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    for (const key in object) {
        if (object.hasOwnProperty(key)) {
            return false
        }
    }
    return true
}
로그인 후 복사

방법 2: 키 메서드

를 사용하세요. 정적 메소드 키를 객체화한 후 키가 반환하는 것은 열거 가능 속성이므로 열거 가능이 false인 속성으로 순회할 수 없습니다

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    if (Object.keys(object).length) {
        return false
    }
    return true
}
로그인 후 복사

방법 3: JSON 메소드

JSON Stringify 메소드를 사용하여 변환하세요. 객체를 문자열로 변환하고 문자열 '{}'과 비교합니다. 이 방법은 통과할 수 없는 속성을 얻을 수 없습니다

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    return JSON.stringify(object) === '{}'
}
로그인 후 복사

방법 4: getOwnPropertyNames 방법

모든 속성 이름을 얻으려면 Object의 getOwnPropertyNames 메서드를 사용하세요. 열거할 수 없는 속성도 얻을 수 있으므로 비교적 괜찮은 방법입니다.

const isEmptyObj = object => {
    if (!!Object.getOwnPropertySymbols(object).length) {
        return false
    }
    if (!!Object.getOwnPropertyNames(object).length) {
        return false
    }
    return true
}
로그인 후 복사

간략화된 버전: JavaScript에서 객체가 비어 있는지 확인하는 방법(코드 예)

const isEmptyObj = object => !Object.getOwnPropertySymbols(object).length && !Object.getOwnPropertyNames(object).length
로그인 후 복사

[관련 권장 사항:

JavaScript 비디오 튜토리얼

]

위 내용은 JavaScript에서 객체가 비어 있는지 확인하는 방법(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿