for...in 문을 활용하면 객체 내부에 있는 모든 프로퍼티들을 하나씩 다룰 수 있다
특정한 변수를 만들고 in 키워드 다음에 반복될 객체를 넣어줌
let person = {
name: "민수",
bornYear: 2002,
isVeryNice: true,
balance: null,
pet: "또리"
}
for (let key in person) {
console.log(key); //
console.log(person[key]);
}
정수형 프로퍼티 네임
객체는 정수형 프로퍼티 네임을 오름차순으로 먼저 정렬하고, 나머지 프로퍼티들은 추가한 순서대로 정렬하는 특징이 있음
let myObject = {
3: '정수3',
name: 'minsu',
1: '정수1',
birthDay: '1999.5.5',
2: '정수2',
};
for (let key in myObject) {
console.log(key);
}
출력 결과
1
2
3
name
birthDay
3, name, 1, birthday, 2순서로 프로퍼티가 작성되었음에도 불구하고
for...in문이 실행될 때는 오름차순으로 정렬이 되어 출력.
정수형 프로퍼티에 따옴표를 붙여 문자열처럼 만들더라도, 정렬방식은 동일하게 처리됨 🙄
let hyesoonScore = {
'데이터 모델링의 이해': 10,
'데이터 모델과 성능': 8,
'SQL 기본': 22,
'SQL 활용': 18,
'SQL 최적화 기본 원리': 20,
};
let minsoonScore = {
'데이터 모델링의 이해': 14,
'데이터 모델과 성능': 8,
'SQL 기본': 12,
'SQL 활용': 4,
'SQL 최적화 기본 원리': 16,
};
자격증 합격 기준은 총점이 60점 이상
파라미터로 객체를 전달받고, 각 과목들의 점수를 모두 합산해서 시험 결과를 알려주는 passChecker 함수를 완성
합격 기준을 충족할 경우 '축하합니다! 합격입니다!' 라는 문자열을, 충족하지 못할 경우 '아쉽지만 불합격입니다..'라는 문자열을 출력
function passChecker(scoreObject) {
let sum = 0 ;
for(let key in scoreObject){
sum += scoreObject[key];
}
if (sum >= 60){
console.log("축하합니다! 합격입니다!");
}else {
console.log("아쉽지만 불합격입니다..")
}
};
passChecker(hyesoonScore);
passChecker(minsoonScore);