JavaScript의 객체에 키가 있는지 확인

Moataz Farid 2023년10월12일
  1. 요소 직접 액세스 방법을 사용하여 객체 키가 JavaScript에 있는지 확인
  2. in 연산자를 사용하여 객체 키가 JavaScript에 있는지 확인합니다
  3. hasOwnProperty 메서드를 사용하여 객체 키가 JavaScript에 있는지 확인합니다
  4. underscore 라이브러리를 사용하여 객체 키가 JavaScript에 있는지 확인하십시오
JavaScript의 객체에 키가 있는지 확인

이 튜토리얼에서는 여러 방법을 사용하여 JavaScript에 키가 있는지 확인하는 방법을 배웁니다.

요소 직접 액세스 방법을 사용하여 객체 키가 JavaScript에 있는지 확인

키가있는 경우 undefined를 반환해서는 안됩니다. undefined를 반환하는지 여부를 확인하기 위해 키에 직접 액세스 할 수 있으며 object스타일과 대괄호 액세스 스타일의 두 가지 스타일로 수행 할 수 있습니다.

다음 예에서는 대괄호 스타일을 사용하여 키에 직접 액세스하여 키가 있는지 확인하는 방법을 보여줍니다.

let myObject = {'mykey1': 'My Value 1', 'mykey2': 'My Value 2'};

function isKeyExists(obj, key) {
  if (obj[key] == undefined) {
    return false;
  } else {
    return true;
  }
}
let result0 = isKeyExists(myObject, 'mykey0')
console.log('Check for the non-existing key, is key exists > ' + result0)

let result1 = isKeyExists(myObject, 'mykey1')
console.log('Check for the existing key, is key exists > ' + result1)

출력:

Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true

직접 액세스로 키를 확인하는 기타 스타일은 객체 스타일을 사용하는 것입니다. 다음 예에서는 JavaScript에서 해당 키 존재를 확인하는 방법을 볼 수 있습니다.

let myObject = {mykey1: 'My Value 1', mykey2: 'My Value 2'};

let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists ? ' + result)

let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists ? ' + result1)

출력:

Is myKey0 exists ? false
Is myKey1 exists ? true

직접 키 액세스를 사용하여 undefined을 확인하는 단점 중 하나는 키의 값이 undefined과 같을 수 있다는 것입니다. 해당 방법의 문제를 보여주기 위해 다음 예제를 보겠습니다.

let myObject = {mykey0: undefined, mykey1: 'My Value 1'};

let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists? ' + result)

let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists? ' + result1)

출력:

Is myKey0 exists? false
Is myKey1 exists? true

위의 경우의 해결책은 정의되지 않은 값으로 초기화하고 싶을 때 속성에 undefined를 할당하지 않고 대신 null로 초기화하는 것입니다.

undefined값을 사용하여 키를 초기화해야하는 경우 in연산자, hasOwnProperty메소드 또는 underscore라이브러리 _.has메소드를 사용해야합니다.

in 연산자를 사용하여 객체 키가 JavaScript에 있는지 확인합니다

in 연산자는 대상 객체에서 키를 찾을 수없는 경우false를 반환하는 데 사용되며 발견되면true를 반환합니다.

let myObject =
    {favoriteDish: 'Spaghetti', language: 'English'}

    function isKeyExists(obj, key) {
      return key in obj;
    }

    console.log(
        'Does language key exists? ' + isKeyExists(myObject, 'language'))
console.log(
    'Does nationality key exists? ' + isKeyExists(myObject, 'nationality'))

출력:

Does language key exists? true
Does nationality key exists? false

hasOwnProperty 메서드를 사용하여 객체 키가 JavaScript에 있는지 확인합니다

객체에 특정 속성 키가 포함되어 있는지 확인하는 또 다른 방법은hasOwnProperty 메서드를 사용하는 것입니다. 다음 예에서는hasOwnProperty 메소드를 사용하는 방법을 보여줍니다.

let myObject =
    {favoriteDish: 'Spaghetti', language: 'English'}

    function isKeyExists(obj, key) {
      return obj.hasOwnProperty(key);
    }

    console.log(
        'Does the object have language key? ' +
        isKeyExists(myObject, 'language'))
console.log(
    'Does the object have nationality key? ' +
    isKeyExists(myObject, 'nationality'))

출력:

Does the object have language key? true
Does the object have nationality key? false

underscore 라이브러리를 사용하여 객체 키가 JavaScript에 있는지 확인하십시오

이미underscore 라이브러리 메서드를 사용하고 있다면_.has()메서드를 사용할 수 있습니다. 객체에 제공된 키가 있으면true를 반환하고 그렇지 않으면false를 반환하므로_.has()메서드를 사용할 수 있습니다.

let myObject =
    {favoriteDish: 'Spaghetti', language: 'English'}

    console.log(
        'Check using underscore library if the object has language key? ' +
        _.has(myObject, 'language'))

console.log(
    'Check using underscore library if the object has nationality key? ' +
    _.has(myObject, 'nationality'))

출력:

Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false

여기에서 라이브러리를 가져올 수 있습니다.

관련 문장 - JavaScript Object