for (반복조건) {
// 반복조건이 맞으면 실행할 코드
}
Ex) findSmallestElement 함수를 구현하기
findSmallestElement 의 arr 인자는 숫자 값으로만 이루어진 배열입니다.
arr 의 값들 중 가장 작은 값을 리턴 해주세요.
만일 arr 가 비어있으면 0을 리턴 해주세요.
예를 들어,[20, 200, 23, 1, 3, 9]
배열이 인자(input)으로 들어왔다면 1이 리턴 되어야 합니다.
😛 내가 구현한 함수
function findSmallestElement(arr) { if(arr.length === 0) return 0; //비어있으면 0반환 //배열 인자를 처음부터 하나씩 비교해 둘 중 작은값을 //저장하여 배열안 인자 중 가장 작은 숫자값을 찾는다. let smallestNumber = arr[0]; //처음값 저장 //배열의 크기만큼 반복 ! for(let i=0; i<arr.length; i++){ if(smallestNumber > arr[i]){ //if문의 조건인 작은수보다 더 작은수가 있으면 smallestNumber에 저장. smallestNumber = arr[i]; } } return smallestNumber; //smallestNumber값 반환 } console.log(findSmallestElement([20, 200, 23, 1, 3, 9]))
👇🏻 결과
1
Ex)divideArrayInHalf 함수를 다음과 같이 구현하기
divideArrayInHalf 함수는 array를 인자로 받습니다. 이 array는 숫자 값으로 만 구성되어 있으며 총 5개의 요소(element)들로 구성되어 있습니다.
divideArrayInHalf 함수는 인자로 들어온 array 로 부터 새롭게 구성된 배열 result 을 리턴합니다.
array 요소들 중 10과 같거나 작은 값의 요소들은 result의 맨 앞으로, 10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 리턴 해주세요.
재구성이 되는 순서는 array의 맨 뒤 요소부터 맨 앞 요소까지 입니다. 즉, 배열의 뒷 요소 부터 재구성을 진행해주세요.
😛 내가 구현한 함수 1
(배열 메소드.reverse()
,.unshift()
,.push()
사용)
여기선 배열의 뒷요소 부터 재구성을 진행하기 위해 먼저 배열을 역순으로 바꾼 다음 진행.function divideArrayInHalf(array) { let result = []; array=array.reverse(); //배열을 역순으로 반환해주는 함수 for (let i=0;i<array.length;i++){ let num=array[i]; if (num<=10){ result.unshift(num); //배열 맨 앞에 요소를 추가하는 메소드 } else if (num>10){ result.push(num);//배열 맨 뒤에 요소를 추가하는 메소드 } } return result; } console.log(divideArrayInHalf([1, 20, 10, 5, 100]))
👇🏻 결과
[ 1, 10, 5, 100, 20 ]
😛 내가 구현한 함수 2
(배열 메소드.pop()
,.unshift()
,.push()
사용)
여기선 배열에서 뒷 요소부터 가져와 재구성 진행
문제 조건에 이 경우가 더 맞는 것같아서 이 방법으로도 풀어본 것 (뭐가 더 나은 코드인진 아직 모르겠다)function divideArrayInHalf(array){ let count=array.length; let result=[] for (let i=0;i<count;i++){ let num=array.pop() //배열에서 맨 뒤 요소를 //반환하고 반환된 요소는 배열에서 삭제하는 메소드 if(num <=10) { result.unshift(num);} else {result.push(num);} } return result; }
👇🏻 결과
[ 1, 10, 5, 100, 20 ]