소개
이 랩에서는 JavaScript 를 사용하여 JSON 객체에 대상 값이 존재하는지 확인하는 방법을 살펴봅니다. hasKey() 함수를 사용하여 객체의 키를 순차적으로 확인하여 대상 값이 있는지 확인할 것입니다. 이 랩은 JavaScript 에서 JSON 객체를 사용하는 방법에 대한 더 나은 이해를 제공할 것입니다.
객체가 키를 가지고 있는지 확인하는 JavaScript 함수
JavaScript 객체에 대상 값이 존재하는지 확인하려면 hasKey 함수를 사용하십시오.
이 함수는 두 개의 인수를 받습니다: 검색할 JSON 객체인 obj와 확인할 키의 배열인 keys. 객체에 주어진 키가 있는지 확인하는 단계는 다음과 같습니다.
keys배열이 비어 있지 않은지 확인합니다. 비어 있다면false를 반환합니다.Array.prototype.every()메서드를 사용하여keys배열을 반복하고obj의 내부 깊이까지 각 키를 순차적으로 확인합니다.Object.prototype.hasOwnProperty()메서드를 사용하여obj가 현재 키를 가지고 있지 않거나 객체가 아닌지 확인합니다. 이 조건 중 하나라도 참이면 전파를 중단하고false를 반환합니다.- 그렇지 않으면, 다음 반복에서 사용할 키의 값을
obj에 할당합니다. keys배열이 성공적으로 반복되었다면true를 반환합니다.
다음은 hasKey 함수의 코드입니다.
const hasKey = (obj, keys) => {
return (
keys.length > 0 &&
keys.every((key) => {
if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
obj = obj[key];
return true;
})
);
};
다음은 hasKey 함수를 사용하는 몇 가지 예입니다.
let obj = {
a: 1,
b: { c: 4 },
"b.d": 5
};
hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false
요약
축하합니다! 객체가 키를 가지고 있는지 확인하는 랩을 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.