JavaScript - 문제 미리보기

문제 636

hard
다음 `Object.groupBy()` 코드의 실행 결과로 생성되는 객체는? ```javascript const fruits = [ {name: "apples", quantity: 300}, {name: "bananas", quantity: 500}, {name: "oranges", quantity: 200}, {name: "kiwi", quantity: 150} ]; function myCallback({quantity}) { return quantity > 200 ? "ok" : "low"; } const result = Object.groupBy(fruits, myCallback); ```
A. `{ok: 2, low: 2}`
B. `{ok: ["apples", "bananas"], low: ["oranges", "kiwi"]}`
C. `{ok: [{name:"apples", quantity:300}, {name:"bananas", quantity:500}], low: [{name:"oranges", quantity:200}, {name:"kiwi", quantity:150}]}`
D. `["ok", "low"]`

정답: C

`Object.groupBy()` 메서드는 ES2024에서 추가된 메서드로, 배열의 요소들을 콜백 함수의 반환값에 따라 그룹화합니다. 1) 콜백 함수 `myCallback`은 `quantity > 200`인 경우 "ok", 그렇지 않으면 "low"를 반환합니다. 2) apples(300)와 bananas(500)는 "ok" 그룹에 속합니다. 3) oranges(200)와 kiwi(150)는 "low" 그룹에 속합니다. 4) 결과는 그룹명을 키로 하고, 해당 그룹에 속하는 원본 객체들의 배열을 값으로 가지는 객체입니다. 따라서 결과는 `{ok: [apples 객체, bananas 객체], low: [oranges 객체, kiwi 객체]}`가 됩니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.