JavaScript의 객체에 키가 있는지 확인
- 요소 직접 액세스 방법을 사용하여 객체 키가 JavaScript에 있는지 확인
-
in
연산자를 사용하여 객체 키가 JavaScript에 있는지 확인합니다 -
hasOwnProperty
메서드를 사용하여 객체 키가 JavaScript에 있는지 확인합니다 -
underscore
라이브러리를 사용하여 객체 키가 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
여기에서 라이브러리를 가져올 수 있습니다.