선반별 상품 목록 한 줄로 펼치기
자바스크립트 코딩테스트 문제로 array-flattening-methods 주제를 연습해보세요. 난이도는 easy이며, 브라우저에서 바로 JavaScript로 풀이를 실행할 수 있습니다.
선반별로 나뉘어 있는 상품 목록을 하나의 배열로 펼쳐 반환하세요.
오늘의 메서드
- 오늘 배울 메서드는
Array.flat()입니다. - 중첩된 배열을 지정한 깊이만큼 펼쳐 새 배열을 만들 때 사용합니다.
메서드 설명
flat()은 배열 안에 들어 있는 배열 요소를 꺼내서 더 평평한 배열로 만들어 줍니다.
기본 깊이는 1이므로, [[1, 2], [3]]처럼 한 단계만 중첩된 배열을 펼칠 때 바로 사용할 수 있습니다.
기본 문법
arr.flat()
arr.flat(depth)
사용 예시
const groups = [["apple", "banana"], ["milk"], ["bread"]];
groups.flat(); // ["apple", "banana", "milk", "bread"]
주의할 점
flat()은 원본 배열을 바꾸지 않고 새 배열을 반환합니다.- 기본값은 한 단계만 펼치는
flat(1)과 같습니다. - 더 깊게 중첩된 배열까지 모두 펼치려면 깊이를 따로 지정해야 합니다.
- 빈 배열은 펼치는 과정에서 결과에 아무 요소도 추가하지 않습니다.
제한사항
groups는 문자열 배열들이 들어 있는 2차원 배열입니다.groups.length는 0 이상 30 이하입니다.- 각 안쪽 배열의 길이는 0 이상 20 이하입니다.
- 상품 이름은 길이 1 이상 20 이하의 문자열입니다.
- 선반 순서와 각 선반 안의 상품 순서는 그대로 유지해야 합니다.
예시
- 입력:
[["apple", "banana"], ["milk"], ["bread", "jam"]]-> 출력:["apple", "banana", "milk", "bread", "jam"] - 입력:
[[], ["pen"], []]-> 출력:["pen"] - 입력:
[]-> 출력:[]
힌트
- 이미
groups는 배열 안에 배열이 들어 있는 형태입니다. - 한 단계만 펼치면 모든 상품 이름이 같은 배열 안에 모입니다.
해설
이 문제는 2차원 배열을 1차원 배열로 바꾸는 연습입니다.
groups.flat()을 사용하면 각 선반 배열 안의 상품들이 순서대로 꺼내져 하나의 새 배열에 담깁니다. 원본 배열을 직접 수정하지 않기 때문에, 필요한 결과만 깔끔하게 반환할 수 있습니다.
function flattenShelfItemGroups(groups) {
return groups.flat();
}
코드 작성
starter code를 바탕으로 함수를 완성한 뒤 예제 테스트를 실행해보세요.
JavaScript
에디터 로딩 중...
커스텀 테스트
함수 인자를 JSON 배열 형태로 입력하세요. 예: [3, 5], [[1, 2, 3]]
아직 실행하지 않았습니다.
실행 결과
아직 실행하지 않았습니다.
예제 테스트를 실행하면 여기에서 결과를 확인할 수 있습니다.
댓글
문제 풀이 아이디어, 질문, 반례를 자유롭게 나눠보세요.