개체에 Javascript의 배열에 모든 키가 포함되어 있는지 확인

때때로 Javascript에는 특정 키 세트를 준수해야 하는 객체가 있습니다. 이것은 TypeScript 의 유형 적용을 통해 가능하지만 키가 존재하지 않는 경우 특정 작업을 수행하려면 다른 접근 방식을 취해야 합니다.

예를 들어, firstName , lastNameage 가 완료하려는 작업에 모두 필요한 배열에서 다음 개체를 수신한다고 가정합니다. 예를 들어

let obj = {
    firstName: Jack,
    lastName: Doe,
    age: 123
}

console.log(`${obj.firstName} ${obj.lastName} is ${obj.age}`);


배열에서 obj의 데이터를 수신하는 경우 해당 속성이 제공될 것이라고 신뢰할 수 있지만 API가 변경되면 문제에 직면할 수 있습니다. API 개발자는 age 또는 기타 속성을 제거하거나 firstNamefirst_name로 이름을 바꿀 수 있습니다. 최상의 시나리오에서는 키가 정의되지 않게 됩니다. 최악의 경우 오류가 발생하고 애플리케이션이 중단될 수 있습니다.

이를 방지하기 위해 개체에 필요한 키가 있는지 확인할 수 있습니다.

개체에 배열의 모든 키가 포함되어 있는지 확인하는 방법



이 문제에 대한 솔루션은 every()를 사용합니다. every()는 배열의 모든 요소를 ​​검사하고 논리적 검사를 수행하는 배열 메서드입니다. 모두 true를 반환하면 every() 메서드가 true를 반환합니다.

객체가 배열의 모든 키를 포함하는지 확인하려면 확인하려는 모든 키의 배열에서 every()를 사용합니다. 그렇게 하면 각 요소가 존재하는지 논리적으로 확인할 수 있고 거짓이면 다른 작업을 수행하여 오류 발생을 방지할 수 있습니다.

let requiredKeys = [ 'firstName', 'lastName', 'age' ]
let obj = {
    firstName: Jack,
    lastName: Doe,
    age: 123
}

let checkAllKeys = requiredKeys.every((i) => obj.hasOwnProperty(i));

if(checkAllKeys) {
    console.log(`${obj.firstName} ${obj.lastName} is ${obj.age}`);
}
else {
    console.log('The API does not have all the keys required. Please check API and configuration')
}


여기에서 firstName , lastNameage 의 필수 키 배열을 만듭니다. 그런 다음 every()를 사용하여 해당 배열의 각 항목을 살펴봅니다. every() 에서 함수를 실행합니다. 여기서 i 는 반복되는 현재 항목입니다. obji 속성이 있는 경우 every()는 해당 특정 항목에 대해 true를 반환합니다.

모든 항목이 true를 반환하면 every가 전체적으로 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 따라서 checkAllKeys가 참이면 필요한 모든 키가 있다고 확신할 수 있습니다. 그렇지 않으면 콘솔 로그 오류와 같은 다른 작업을 수행할 수 있습니다.

좋은 웹페이지 즐겨찾기