- [Javascript] hasOwnProperty 함수 알아보자 (크라임씬 법원 살인사건에서 다잉메세지로 범인 찾기)2024년 02월 21일
- 주사위 clice
- 작성자
- 2024.02.21.:34
반응형hasOwnProperty 함수의 기능
객체, 문자열 등 대상이 특정 속성을 가지고 있는지 판단하는 함수이다.
있는지 없는지 '판단'하는 함수이니까 반환값이 참/거짓으로 나온다. (Boolean 값으로 반환된다)
함수 사용 방법
대상.함수('찾을대상') 으로 사용한다
Variable.hasOwnProperty('Property') 로 사용한다.
예제
예제를 한번 살펴보자//첫번째 예제 var actor1='주현영' var actor2='주만년' var actor3='주변호' var actor4='주집착'
배우 4명의 이름이 위와 같다.
이름은 순서대로 주현영, 주만년, 주변호, 주집착이다.
이때, 이름이 '주현영'인지 확인하고 싶다.
그러면 actor.hasOwnProperty('주현영') 으로 확인하면 된다//첫번째 예제 console.log(actor1.hasOwnProperty('주현영')) //True console.log(actor2.hasOwnProperty('주현영')) //False console.log(actor3.hasOwnProperty('주현영')) //False console.log(actor4.hasOwnProperty('주현영')) //False
객체 예제(크라임씬: 법원 살인사건)
일반적인 문자열 뿐만 아니라 객체에서도 사용 가능하다
크라임씬 리턴즈를 참고해서 문제를 만들어보자!(스포없음)
살인사건이 일어났다.
주변호, 안기자, 키보안. 세 명의 용의자가 있다.
먼저 주변호, 안기자, 키보안이라는 세 명의 용의자에 관한 객체를 생성해보자
// 두 번째 예제 const suspect1 = { name: '주변호', age: 45 gender: 'female' job: 'lawyer' }; const suspect2 = { name: '안기자', age: 32 gender: 'female' job: 'reporter' }; const suspect3 = { name: '키보안', age: 45 gender: 'male' job: 'sheriff' };
이때 피해자가 마지막에 남긴 이 다잉 메세지가 발견 되었다.
메세지는 'she...' 라고 쓴 단어였다.
첫 번째 추리: 범인이 여자다 (she)// 두 번째 예제 console.log(suspect1.hasOwnProperty('female')) //True console.log(suspect2.hasOwnProperty('female')) //True console.log(suspect3.hasOwnProperty('female')) //False
첫번째, 두번째 용의자로 범인이 좁혀졌다
두 번째 추리: she는 sheriff를 쓰려던 것이다. 범인이 보안관(sheriff)이다// 두 번째 예제 console.log(suspect1.hasOwnProperty('sheriff')) //True console.log(suspect2.hasOwnProperty('sheriff')) //True console.log(suspect3.hasOwnProperty('sheriff')) //False
세번째 용의자로 범인이 좁혀졌다
suspect1, suspect2, suspect3 를 배열에 넣고 for문을 돌릴수도 있다
// 두 번째 예제 // 객체들을 배열에 넣는다 const suspects = [suspect1, suspect2, suspect3]; // for 루프 for (let i = 0; i < suspects.length; i++) { console.log(`suspect${i + 1}.hasOwnProperty('female'):`, suspects[i].hasOwnProperty('female')); }
그렇다면 진짜 범인은?
크라임씬 리턴즈 5화: 법원 살인사건에서 확인해보자!
참고로 sheriff의 뜻은 보안관은 맞는데, 미국에서 별 뱃지 달고, 말 타고 다니는 그런 보안관이다.
키보안이랑은 관련 없다. 문제를 위해서 코드를 저렇게 적었을 뿐이지 키보안은 법원의 보안경비이다.
크라임씬 리턴즈에서도 she라는 다잉 메세지는 발견되지 않는다!
roll the dice
clice 클라이스의 개발일지 입니다반응형'프론트 > Javascript Typescript' 카테고리의 다른 글
[JS] 비구조화 할당(구조분해할당) 쓰는 이유와 사용 방법 (0) 2024.04.30 [Javascript] 동적 타입 언어 자바스크립트 자료형 변환: '문자'와 숫자의 사칙연산 (0) 2024.02.22 [Typescript] 타입스크립트란? 한번 배우면 자바스크립트로 다시는 못 돌아감 (1) 2024.02.18 [Javascript] 프론트 개발자라면 알아야 할 호이스팅의 핵심 개념(호스팅 아니고 Hoisting) (1) 2024.01.23 [Javascript] 10초만에 이미지 슬라이드 무한루프 반복재생하기 (0) 2024.01.21 다음글이전글이전 글이 없습니다.댓글