replit 17. divideArrayInHalf 함수 구현
글 작성자: 개발자 올라프
Assignment
1. divideArrayInHalf 함수는 array를 인자로 받는다. 이 array는 숫자 값으로만 구성되어 있으며 총 5개의 element로 구성되어 있다.
2. divideArrayInHalf 함수는 인자로 들어온 array로 부터 새롭게 구성된 배열 result을 return한다.
3. array 요소들 중 10과 같거나 작은 값의 요소들은 result의 맨 앞으로, 10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 return한다.
4. 재구성이 되는 순서는 array의 맨 뒤 요소부터 맨 앞 요소까지 이다. 즉, 배열의 뒷 요소부터 재구성을 진행한다.
5. 예를 들어 인자로 들어오는 array가 다음과 같을때 [1, 20, 10, 5, 100], result 배열이 만들어지는 순서는 다음과 같다.
My code
function divideArrayInHalf(arr) {
result = [];
for(let i=0; i<arr.length; i++) {
let lastNumber = arr.pop();
if(lastNumber <= 10) {
result.unshift(lastNumber);
} else {
result.push(lastNumber);
}
}
return result;
}
// 결과 : [10, 5, 100]
에러 수정
단순하게 for 조건식에 i<array.length를 넣으면 0부터 4까지 총 5회 반복할줄 알았다. array가 for문 안에서 pop() 메서드를 통해서 마지막 요소를 제거한 요소를 반환하는 과정에서 length가 3이 되었기에 3회만 반복됐다. 따라서 5회 반복할 수 있도록 array의 길이를 담은 변수를 선언하여 사용하기로 했다.
function divideArrayInHalf(arr) {
result = [];
const arrLength = arr.length; // array의 길이 5를 담은 변수 추가
for(let i=0; i<arrLength; i++) {
let lastNumber = array.pop();
if(lastNumber <= 10) {
result.unshift(lastNumber);
} else {
result.push(lastNumber);
}
}
return result;
}
// 결과 : [1, 10, 5, 100, 20]
다른방식
pop()메서드를 사용하지 않고 길이를 이용한 방식
function divideArrayInHalf(arr) {
result = [];
for(let i=array.length-1; i>=0; i--) {
if(array[i] <= 10) {
result.unshift(array[i]);
} else {
result.push(array[i]);
}
}
return result;
}
'⭐️ Memory > 교육수강 회고' 카테고리의 다른 글
replit 22. 최소값, 최대값 사이의 랜덤수 리턴 (0) | 2022.05.01 |
---|---|
replit 19. sliceCityFromAddress 함수 구현 (0) | 2022.05.01 |
Wecolor Picker 컴포넌트 만들기 (0) | 2022.04.30 |
Weegle - 검색바 만들기 (0) | 2022.04.30 |
(최종)쌍용강북교육센터 - 중간 프로젝트 (23) | 2021.11.21 |
댓글
이 글 공유하기
다른 글
-
replit 22. 최소값, 최대값 사이의 랜덤수 리턴
replit 22. 최소값, 최대값 사이의 랜덤수 리턴
2022.05.01 -
replit 19. sliceCityFromAddress 함수 구현
replit 19. sliceCityFromAddress 함수 구현
2022.05.01 -
Wecolor Picker 컴포넌트 만들기
Wecolor Picker 컴포넌트 만들기
2022.04.30 -
Weegle - 검색바 만들기
Weegle - 검색바 만들기
2022.04.30