const testScores = {
keenan: 80,
damon: 67,
kim: 89,
shawn: 91,
marlon: 72,
dwayne: 77,
nadia: 83,
elvira: 97,
diedre: 81,
vonnie: 60,
};
for (let person of testScores) {
console.log(person); // error!
}
for (let person in testScores) {
console.log(`${person} scored ${testScores[person]}`);
}
위 객체에서 for in 메서드를 사용하면, person
은 key
가 되고, testScores[person]
은 value
가 된다. for loop을 사용하지 않고, 가독성이 좋게 for in 메서드를 사용해서 코드를 작성할 수 있다.
let scores = Object.entries(testScores);
for (let score of scores) {
console.log(`${score[0]} scored ${score[1]}`);
}
Object.entries()를 사용해서 억지로 for in 메서드와 같은 결과가 console에 찍히게 했지만, 사실 for of 메서드는 셀 수 없는 것들에 대해서 순회 작업이 불가능하다. 그래서 억지.
객체에서 새로운 배열을 만들기 위해서 Object.value()를 사용하고, for of 메서드를 사용해서 점수의 평균을 구할 수도 있다.
let total = 0;
let scores = Object.values(testScores);
for (let score of scores) {
total += score;
}
console.log(total / scores.length)